init mkdocs

main
Anton Franzluebbers 2023-08-25 23:19:01 -04:00
parent a99d5c8d93
commit 16f21bb01d
32 changed files with 87 additions and 8999 deletions

View File

@ -8,6 +8,9 @@ on:
jobs:
publish-docs:
defaults:
run:
working-directory: ${{env.SUBFOLDER}}
runs-on: ubuntu-latest
permissions:
contents: read
@ -17,24 +20,27 @@ jobs:
- name: Checkout
uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: actions/setup-python@v4
with:
node-version: "16"
cache: "npm"
cache-dependency-path: "**/package-lock.json"
python-version: 3.x
- name: Install Packages
working-directory: ${{env.SUBFOLDER}}
run: npm i
- run: echo "CACHE_ID=$(date --utc '+%V')" >> $GITHUB_ENV
- uses: actions/cache@v3
with:
key: mkdocs-material-${{ env.CACHE_ID }}
path: .cache
restore-keys: |
mkdocs-material-
- run: pip install -r requirements.txt
- name: Build
working-directory: ${{env.SUBFOLDER}}
run: npm run build
run: mkdocs build --site-dir public
- name: Upload
working-directory: ${{env.SUBFOLDER}}
env:
PROJECT_NAME: velnet-docs
CLOUDFLARE_ACCOUNT_ID: 8077b5b1f8e2ade41874cbaa3f883069
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
run: npx wrangler@3.1.1 pages deploy dist --project-name="${{env.PROJECT_NAME}}" --branch="${{env.GITHUB_REF_NAME}}"
run: npx wrangler@3.1.1 pages deploy public --project-name="${{env.PROJECT_NAME}}" --branch="${{env.GITHUB_REF_NAME}}"

3
.gitignore vendored
View File

@ -1,3 +1,6 @@
.DS_Store
my.secrets
.git.bfg-report/
Documentation-old/
env/
Documentation/public/

5
.vscode/launch.json vendored Normal file
View File

@ -0,0 +1,5 @@
{
"configurations": [
]
}

View File

@ -1,21 +0,0 @@
# build output
dist/
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store

View File

@ -1,4 +0,0 @@
{
"recommendations": ["astro-build.astro-vscode"],
"unwantedRecommendations": []
}

View File

@ -1,11 +0,0 @@
{
"version": "0.2.0",
"configurations": [
{
"command": "./node_modules/.bin/astro dev",
"name": "Development server",
"request": "launch",
"type": "node-terminal"
}
]
}

View File

@ -1,54 +0,0 @@
# Astro Starter Kit: Basics
```
npm create astro@latest -- --template basics
```
[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/basics)
[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/astro/tree/latest/examples/basics)
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/withastro/astro?devcontainer_path=.devcontainer/basics/devcontainer.json)
> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun!
![just-the-basics](https://github.com/withastro/astro/assets/2244813/a0a5533c-a856-4198-8470-2d67b1d7c554)
## 🚀 Project Structure
Inside of your Astro project, you'll see the following folders and files:
```
/
├── public/
│ └── favicon.svg
├── src/
│ ├── components/
│ │ └── Card.astro
│ ├── layouts/
│ │ └── Layout.astro
│ └── pages/
│ └── index.astro
└── package.json
```
Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name.
There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
Any static assets, like images, can be placed in the `public/` directory.
## 🧞 Commands
All commands are run from the root of the project, from a terminal:
| Command | Action |
| :------------------------ | :----------------------------------------------- |
| `npm install` | Installs dependencies |
| `npm run dev` | Starts local dev server at `localhost:3000` |
| `npm run build` | Build your production site to `./dist/` |
| `npm run preview` | Preview your build locally, before deploying |
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
| `npm run astro -- --help` | Get help using the Astro CLI |
## 👀 Want to learn more?
Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat).

View File

@ -1,12 +0,0 @@
import { defineConfig } from 'astro/config';
import mdx from "@astrojs/mdx";
import tailwind from "@astrojs/tailwind";
import cloudflare from "@astrojs/cloudflare";
// https://astro.build/config
export default defineConfig({
integrations: [mdx(), tailwind()],
output: "server",
adapter: cloudflare()
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -1,15 +1,19 @@
---
title: VelNet Unity
description: Unity integration package for VelNet
layout: ../layouts/Layout.astro
---
# VelNet
# VelNet Unity
An easy-to-use networking library for Unity. VelNet is architected similar to Photon PUN, with a single server that acts as a relay for information sent by all clients.
VelNet consists of two main parts:
### [VelNet Server]()
### VelNet Unity
## Installing
1. Set up the [server](/server_setup), or use the default server at `velnet-example.ugavel.com`
2. Install the UPM package in Unity
- Option 1:
- Add the VEL package registry:

View File

@ -0,0 +1,16 @@
:root {
--md-primary-fg-color: #ba0c2f;
--md-primary-fg-color--light: #ffffff;
--md-primary-fg-color--dark: #e4002b;
--md-primary-bg-color: hsla(0, 0%, 100%, 1);
--md-primary-bg-color--light: hsla(0, 0%, 100%, 0.7);
/* --md-accent-fg-color: #ffffff;
--md-accent-fg-color--transparent: #ffffff11;
--md-accent-bg-color: hsla(0, 0%, 100%, 1);
--md-accent-bg-color--light: hsla(0, 0%, 100%, 0.7); */
}
[data-md-color-scheme="slate"] {
--md-hue: 34;
--md-default-bg-color: #191818;
}

33
Documentation/mkdocs.yml Normal file
View File

@ -0,0 +1,33 @@
site_name: VelNet Docs
theme:
name: material
palette:
scheme: slate
primary: custom
accent: red
# background: custom
font:
# text: Oswald
# text: Merriweather
text: Merriweather Sans
logo: assets/logo.png
extra_css:
- stylesheets/extra.css
# theme:
# name: material
# palette:
# # Palette toggle for dark mode
# - scheme: custom
# media: "(prefers-color-scheme: dark)"
# # primary: custom
# toggle:
# icon: material/weather-sunny
# name: Switch to light mode
# # Palette toggle for light mode
# - scheme: default
# media: "(prefers-color-scheme: light)"
# toggle:
# icon: material/weather-night
# name: Switch to dark mode

File diff suppressed because it is too large Load Diff

View File

@ -1,19 +0,0 @@
{
"name": "",
"type": "module",
"version": "0.0.1",
"scripts": {
"dev": "astro dev",
"start": "astro dev",
"build": "astro build",
"preview": "astro preview",
"astro": "astro"
},
"dependencies": {
"@astrojs/cloudflare": "^6.6.2",
"@astrojs/mdx": "^0.19.7",
"@astrojs/tailwind": "^4.0.0",
"astro": "^2.10.1",
"tailwindcss": "^3.3.3"
}
}

View File

@ -1,592 +0,0 @@
* {
box-sizing: border-box;
margin: 0;
}
/* Global focus outline reset */
*:focus:not(:focus-visible) {
outline: none;
}
/* Firefox */
* {
scrollbar-color: var(--theme-dim-light) transparent;
}
/* Webkit */
/* Make scrollbars transparent except for main page scrollbar. */
::-webkit-scrollbar,
::-webkit-scrollbar-track {
background-color: transparent;
}
body::-webkit-scrollbar,
body::-webkit-scrollbar-track {
background: var(--theme-bg-gradient);
}
::-webkit-scrollbar-thumb {
background-color: var(--theme-dim-light);
border: 4px solid transparent;
background-clip: content-box;
border-radius: 10px;
}
@media (prefers-reduced-motion: no-preference) {
:root {
scroll-behavior: smooth;
}
}
/*
Ensure that the auto-hiding/showing address bar on iOS Safari
always has a background color matching our theme.
*/
html {
background: var(--theme-bg-gradient-bottom);
}
/*
Use a pseudo-element to add a gradient background that covers the entire viewport.
Using a regular fixed background does not work properly on mobile browsers like iOS Safari.
*/
body::before {
content: '';
display: block;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: -999;
background: var(--theme-bg-gradient);
}
body {
color: var(--theme-text);
display: flex;
flex-direction: column;
min-height: 100vh;
font-family: var(--font-body);
font-size: 16px;
line-height: 1.5;
}
nav ul {
list-style: none;
padding: 0;
}
.content > section > * + *,
.content > section > blockquote > * + *,
.content > section > :is(ul, ol) > li > * + *,
.content details > * + *,
.content * > astro-slot > * + * {
margin-top: 1.25rem;
}
.content > section > :is(ul, ol) > li > * + * {
margin-bottom: 1.25rem;
}
.content > section > :is(ul, ol) > li,
.content > section > :is(ul, ol) > li > * + *,
.content > section > :is(ul, ol) > li > :is(ul, ol) > li,
.content > section > :is(ul, ol) > li > :is(ul, ol) > li > * + * {
margin-top: 0.5rem;
}
.content > section > :first-child {
margin-top: 0;
}
.content > section > :is(ul, ol),
.content > section > :is(ul, ol) :is(ul, ol) {
padding-inline-start: 1.5em;
}
/* Typography */
:is(h1, h2, h3, h4, h5, h6),
.content > section > .heading-wrapper {
margin-bottom: 1rem;
font-weight: bold;
line-height: 1.3;
}
:is(h1, h2, h3, h4, h5, h6) + *,
.content > section > .heading-wrapper + * {
margin-top: 0;
}
h1,
h2 {
max-width: 40ch;
}
:is(h2):not(:first-child),
.heading-wrapper:not(:first-child):is(.level-h2) {
margin-top: 4rem;
}
:is(h3, h4):not(:first-child),
.heading-wrapper:not(:first-child):is(.level-h3, .level-h4) {
margin-top: 3rem;
}
:is(h5, h6):not(:first-child),
.heading-wrapper:not(:first-child):is(.level-h5, .level-h6) {
margin-top: 2rem;
}
:is(h1, h2, h3, h4, h5, h6, .heading-wrapper)
+ :is(h1, h2, h3, h4, h5, h6, .heading-wrapper):not(:first-child) {
margin-top: 0;
}
:is(h1, h2, h3, h4, h5) code {
--border-radius: 4px;
--padding-block: 0.1rem;
--padding-inline: 0.4rem;
font-weight: 400;
}
h1 {
font-size: 2.5rem; /* 40px */
font-weight: 900;
}
@media (min-width: 37.75em) {
h1 {
font-size: 3rem; /* 48px */
}
}
h2 {
font-size: 1.875rem; /* 30px */
}
h3 {
font-size: 1.5rem; /* 24px */
}
h4 {
font-size: 1.25rem; /* 20px */
}
h5 {
font-size: 1rem; /* 16px */
}
.heading-wrapper {
--icon-size-x: 2rem;
--icon-size-y: 1.5rem;
margin-inline-end: var(--icon-size-x);
}
.heading-wrapper:not(:first-child) {
margin-block: 0;
}
.heading-wrapper > * {
display: inline;
margin-bottom: 0;
}
.heading-wrapper > .anchor-link {
position: relative;
display: inline-flex;
margin-inline-end: calc(-1 * var(--icon-size-x));
width: var(--icon-size-x);
height: var(--icon-size-y);
color: var(--theme-text-light);
text-decoration: none;
justify-content: center;
vertical-align: baseline;
}
/* Float anchor links to the left of headings on larger screens. */
@media (min-width: 50em) {
.heading-wrapper {
display: flex;
flex-direction: row-reverse;
justify-content: flex-end;
align-items: baseline;
margin-inline-start: calc(-1 * var(--icon-size-x));
}
.heading-wrapper > .anchor-link {
margin-inline-end: 0;
}
}
.heading-wrapper > .anchor-link {
opacity: 0.5;
}
@media (hover: hover) {
.heading-wrapper > .anchor-link {
opacity: 0;
}
}
.heading-wrapper:hover > .anchor-link,
.anchor-link:focus {
opacity: 1;
}
p,
.content ul,
.content ol {
line-height: 1.75;
}
p,
.content ul {
color: var(--theme-text-light);
}
small,
.text_small {
font-size: 0.833rem;
}
a {
color: var(--theme-accent-secondary);
text-underline-offset: 0.08em;
align-items: center;
gap: 0.5rem;
}
article > section :is(ul, ol) > * + * {
margin-top: 0.25rem;
}
article > section nav :is(ul, ol) > * + * {
margin-top: inherit;
}
article > section li > :is(p, pre, .expressive-code, blockquote):not(:first-child) {
margin-top: 1rem;
}
article > section nav :is(ul, ol) {
padding-inline-start: inherit;
}
article > section nav {
margin-top: 1rem;
margin-bottom: 2rem;
}
article > section ::marker {
font-weight: bold;
color: var(--theme-text-light);
}
article > section iframe {
width: 100%;
height: auto;
aspect-ratio: 16 / 9;
}
a > code {
position: relative;
color: var(--theme-text-accent);
text-underline-offset: var(--padding-block);
}
a:hover,
a:focus {
text-decoration: underline;
}
a:focus {
outline: 2px solid currentColor;
outline-offset: 0.25em;
}
strong {
font-weight: 600;
color: inherit;
}
/* Supporting Content */
code {
--border-radius: 3px;
--padding-block: 0.2rem;
--padding-inline: 0.3rem;
font-family: var(--font-mono);
font-size: 0.85em;
color: var(--theme-code-inline-text);
background-color: var(--theme-code-inline-bg);
padding: var(--padding-block) var(--padding-inline);
margin: calc(var(--padding-block) * -1) 0;
border-radius: var(--border-radius);
word-break: break-word;
}
/*RTL Fix Code dir for inline code*/
[dir='rtl'] code {
unicode-bidi: plaintext;
}
/*RTL Fix Arrows*/
[dir='rtl'] .toc-mobile-container svg {
transform: rotateY(180deg);
}
.content kbd {
font-family: var(--font-body);
font-size: 0.9375rem;
border-radius: 0.25rem;
padding: 0.0625rem 0.375rem;
border: 1px solid var(--theme-shade-subtle);
box-shadow: 0 2px var(--theme-shade-subtle);
background-color: var(--theme-bg-offset);
white-space: nowrap;
}
.theme-dark .content kbd {
border-color: var(--theme-divider);
background-color: var(--theme-divider);
}
thead {
font-family: var(--font-body);
}
table {
width: 100%;
padding: var(--padding-block) 0;
margin: 0;
border-collapse: collapse;
line-height: 1.8;
}
/* Zebra striping */
tbody tr:nth-of-type(odd) {
background: var(--theme-divider);
}
th {
font-weight: bold;
}
td,
th {
padding: 6px;
text-align: start;
}
blockquote code {
background-color: var(--theme-bg);
}
blockquote {
margin: 2rem 0 2rem 0;
padding: 1.25em 1.5rem;
border-inline-start: 8px solid var(--theme-divider);
background-color: var(--theme-bg-offset);
border-radius: 0 0.25rem 0.25rem 0;
line-height: 1.7;
/* Indicates the blockquote boundaries for forced colors users, transparent is changed to a solid color */
outline: 1px solid transparent;
}
img,
video {
max-width: 100%;
}
.content video {
box-shadow: 0 0 var(--theme-glow-blur) var(--theme-glow-diffuse);
}
.content details {
--details-padding-block: 0.25rem;
--details-padding-inline: 1rem;
--details-corners: 0.5rem;
border-radius: var(--details-corners);
border: 1px solid var(--theme-shade-subtle);
padding: var(--details-padding-block) var(--details-padding-inline);
}
.content details:hover {
background: var(--theme-bg-offset);
}
.content details[open] {
background: var(--theme-bg-offset);
padding-bottom: 1rem;
}
.content details summary {
margin: calc(-1 * var(--details-padding-block)) calc(-1 * var(--details-padding-inline));
padding: var(--details-padding-block) var(--details-padding-inline);
font-weight: bold;
cursor: pointer;
}
.content details summary::marker,
.content details summary::-webkit-details-marker {
color: var(--theme-accent-secondary);
}
.content details[open] > summary {
border-bottom: 1px solid var(--theme-shade-subtle);
}
.content details pre {
--padding-inline: 1.25rem;
border: var(--glow-border);
margin-left: 0;
margin-right: 0;
}
.flex {
display: flex;
align-items: center;
}
button {
border: 0;
font-size: 1rem;
padding: 0.33em 0.67em;
}
h2.heading {
font-size: 1em;
font-weight: 600;
margin-bottom: 0.5rem;
margin-top: 1.5rem;
}
.header-link {
font-size: 1em;
transition: border-inline-start-color 100ms ease-out, background-color 200ms ease-out;
}
a.header-link {
display: inline-flex;
gap: 0.5em;
width: 100%;
font: inherit;
padding-top: 0.4rem;
padding-bottom: 0.4rem;
line-height: 1.3;
color: var(--theme-text-lighter);
text-decoration: none;
unicode-bidi: plaintext;
}
@media (min-width: 50em) {
a.header-link {
padding-top: 0.275rem;
padding-bottom: 0.275rem;
}
}
.header-link:hover,
.header-link:focus,
.header-link:focus-within {
border-inline-start-color: var(--theme-accent-secondary);
}
a.header-link:hover,
a.header-link:focus {
color: var(--theme-text);
text-decoration: underline;
}
.header-link svg {
opacity: 0.6;
}
.header-link:hover svg {
opacity: 0.8;
}
/* Add line and padding on the left side */
.header-link {
padding-inline-start: 1rem;
}
.header-link.depth-3 {
padding-inline-start: 2rem;
}
.header-link.depth-4 {
padding-inline-start: 3rem;
}
/* Apply different TOC styling for wide viewports showing the right sidebar */
@media (min-width: 72em) {
h2.heading {
padding-inline-start: calc(1rem + 4px);
}
.header-link {
border-inline-start: 4px solid var(--theme-divider);
}
}
/* Highlight TOC header link matching the current scroll position */
a.current-header-link {
background-color: var(--theme-bg-accent);
/* Indicates the current heading for forced colors users in older browsers */
outline: 1px solid transparent;
}
@media (forced-colors: active) {
a.current-header-link {
border: 1px solid CanvasText;
}
}
a.current-header-link {
color: var(--theme-text);
}
/* Screenreader Only Text */
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border-width: 0;
}
.focus\:not-sr-only:focus,
.focus\:not-sr-only:focus-visible {
position: static;
width: auto;
height: auto;
padding: 0;
margin: 0;
overflow: visible;
clip: auto;
white-space: normal;
}
/*
Add the correct amount of scroll padding to ensure that linked headings are always visible
and have enough distance to the viewport edge and potential fixed navigation bars.
Please note that this can't be done with `scroll-margin` on the scroll targets themselves
due to lack of iOS Safari browser support.
*/
html {
/* Mobile TOC is displayed above page content */
scroll-padding-top: calc(1.5rem + var(--theme-navbar-height) + var(--theme-mobile-toc-height));
}
@media (min-width: 72em) {
html {
/* Regular TOC is displayed as a sidebar */
scroll-padding-top: calc(1.5rem + var(--theme-navbar-height));
}
}
@media (prefers-reduced-motion: reduce) {
details svg {
/* Removes the collapsible sidebar svg animation */
transition: none !important;
}
}

File diff suppressed because one or more lines are too long

View File

@ -1,202 +0,0 @@
pre,
code {
font-family: Menlo, Monaco, "Courier New", monospace;
}
pre {
padding: .5rem;
line-height: 1.25;
overflow-x: scroll;
}
@media print {
*,
*:before,
*:after {
background: transparent !important;
color: #000 !important;
box-shadow: none !important;
text-shadow: none !important;
}
a,
a:visited {
text-decoration: underline;
}
a[href]:after {
content: " (" attr(href) ")";
}
abbr[title]:after {
content: " (" attr(title) ")";
}
a[href^="#"]:after,
a[href^="javascript:"]:after {
content: "";
}
pre,
blockquote {
border: 1px solid #999;
page-break-inside: avoid;
}
thead {
display: table-header-group;
}
tr,
img {
page-break-inside: avoid;
}
img {
max-width: 100% !important;
}
p,
h2,
h3 {
orphans: 3;
widows: 3;
}
h2,
h3 {
page-break-after: avoid;
}
}
a,
a:visited {
color: #01ff70;
}
a:hover,
a:focus,
a:active {
color: #2ecc40;
}
.retro-no-decoration {
text-decoration: none;
}
html {
font-size: 12px;
}
@media screen and (min-width: 32rem) and (max-width: 48rem) {
html {
font-size: 15px;
}
}
@media screen and (min-width: 48rem) {
html {
font-size: 16px;
}
}
body {
line-height: 1.85;
}
p,
.retro-p {
font-size: 1rem;
margin-bottom: 1.3rem;
}
h1,
.retro-h1,
h2,
.retro-h2,
h3,
.retro-h3,
h4,
.retro-h4 {
margin: 1.414rem 0 .5rem;
font-weight: inherit;
line-height: 1.42;
}
h1,
.retro-h1 {
margin-top: 0;
font-size: 3.998rem;
}
h2,
.retro-h2 {
font-size: 2.827rem;
}
h3,
.retro-h3 {
font-size: 1.999rem;
}
h4,
.retro-h4 {
font-size: 1.414rem;
}
h5,
.retro-h5 {
font-size: 1.121rem;
}
h6,
.retro-h6 {
font-size: .88rem;
}
small,
.retro-small {
font-size: .707em;
}
/* https://github.com/mrmrs/fluidity */
img,
canvas,
iframe,
video,
svg,
select,
textarea {
max-width: 100%;
}
html,
body {
background-color: #222;
min-height: 100%;
}
html {
font-size: 18px;
}
body {
color: #fafafa;
font-family: "Courier New";
line-height: 1.45;
margin: 6rem auto 1rem;
max-width: 48rem;
padding: .25rem;
}
pre {
background-color: #333;
}
blockquote {
border-left: 3px solid #01ff70;
padding-left: 1rem;
}

View File

@ -1,207 +0,0 @@
/*
Define common sizes and spacings
*/
:root {
--theme-navbar-height: 6rem;
--theme-mobile-toc-height: 4rem;
--theme-left-sidebar-width: 18rem;
--theme-right-sidebar-width: 18rem;
/*
Minimum visual horizontal spacing from the edges of the viewport,
and between vertically arranged elements
*/
--min-spacing-inline: 1rem;
/* Vertical spacing around the article content and the right sidebar */
--doc-padding-block: 0.5rem;
--max-width: 100%;
--cur-viewport-height: 100vh;
/* Font sizes */
--theme-text-lg: 1.25rem;
--theme-text-base: 1rem;
--theme-text-sm: 0.9375rem;
--theme-text-xs: 0.875rem;
/* Animation helpers */
--theme-ease-bounce: cubic-bezier(0.4, 2.5, 0.6, 1);
}
@media (min-width: 50em) {
:root {
--min-spacing-inline: 1.5rem;
--doc-padding-block: 1rem;
--max-width: 46em;
--theme-text-sm: 0.875rem;
--theme-text-xs: 0.8125rem;
}
}
@media (min-width: 72em) {
:root {
--doc-padding-block: 2rem;
}
}
/* Use dynamic viewport height if the unit is supported by the browser */
@supports (height: 100dvh) {
:root {
--cur-viewport-height: 100dvh;
}
}
/*
Define common fonts and colors
*/
:root,
::backdrop {
--font-fallback: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif,
Apple Color Emoji, Segoe UI Emoji;
--font-body: system-ui, var(--font-fallback);
--font-mono: 'IBM Plex Mono', Consolas, 'Andale Mono WT', 'Andale Mono', 'Lucida Console',
'Lucida Sans Typewriter', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Liberation Mono',
'Nimbus Mono L', Monaco, 'Courier New', Courier, monospace;
/*
Variables with --color-base prefix define
the hue, and saturation values to be used for
hsla colors.
Example:
--color-base-{color}: {hue}, {saturation};
*/
--color-base-white: 0, 0%;
--color-base-black: 240, 100%;
--color-base-gray: 250, 14%;
--color-base-blue: 212, 100%;
--color-base-blue-dark: 212, 72%;
--color-base-teal: 180, 80%;
--color-base-green: 158, 79%;
--color-base-orange: 22, 100%;
--color-base-purple: 269, 79%;
--color-base-red: 351, 100%;
--color-base-yellow: 41, 100%;
/*
Color palettes are made using --color-base
variables, along with a lightness value to
define different variants.
*/
--color-gray-5: var(--color-base-gray), 5%;
--color-gray-10: var(--color-base-gray), 10%;
--color-gray-20: var(--color-base-gray), 20%;
--color-gray-30: var(--color-base-gray), 30%;
--color-gray-40: var(--color-base-gray), 40%;
--color-gray-50: var(--color-base-gray), 50%;
--color-gray-60: var(--color-base-gray), 60%;
--color-gray-70: var(--color-base-gray), 70%;
--color-gray-80: var(--color-base-gray), 80%;
--color-gray-90: var(--color-base-gray), 90%;
--color-gray-95: var(--color-base-gray), 95%;
--color-blue: var(--color-base-blue), 61%;
--color-blue-dark: var(--color-base-blue-dark), 39%;
--color-green: var(--color-base-green), 42%;
--color-orange: var(--color-base-orange), 50%;
--color-purple: var(--color-base-purple), 54%;
--color-red: var(--color-base-red), 54%;
--color-yellow: var(--color-base-yellow), 59%;
}
:root,
::backdrop {
color-scheme: light;
--theme-accent: hsla(var(--color-orange), 1);
--theme-accent-secondary: hsl(324, 75%, 38%);
--theme-dim: hsla(var(--color-gray-70), 1);
--theme-dim-light: hsla(var(--color-gray-80), 1);
--theme-dim-lighter: hsla(var(--color-gray-90), 1);
--theme-accent-opacity: 0.1;
--theme-divider: hsla(var(--color-purple), 0.1);
--theme-shade-subtle: hsla(var(--color-purple), 0.3);
--theme-text: hsla(var(--color-gray-10), 1);
--theme-text-light: hsla(var(--color-gray-30), 1);
--theme-text-lighter: hsla(var(--color-gray-40), 1);
--theme-bg: hsl(273, 37%, 93%);
--theme-bg-gradient-top: var(--theme-bg);
--theme-bg-gradient-bottom: #fdfeff;
--theme-bg-hover: hsla(var(--color-purple), 0.075);
--theme-bg-offset: hsla(var(--color-purple), 0.1);
--theme-bg-accent: hsla(var(--color-purple), var(--theme-accent-opacity));
--theme-backdrop-overlay: hsla(var(--color-gray-50), 0.8);
--theme-code-inline-bg: hsla(var(--color-purple), 0.1);
--theme-code-inline-text: var(--theme-text);
--theme-code-bg: hsla(257, 31%, 22%, 1);
--theme-code-tabs: hsla(257, 38%, 32%, 1);
--theme-code-text: hsla(var(--color-gray-95), 1);
--theme-navbar-bg: var(--theme-bg);
--theme-selection-color: hsla(var(--color-purple), 1);
--theme-selection-bg: hsla(var(--color-purple), var(--theme-accent-opacity));
--theme-code-selection-bg: hsla(var(--color-purple), 0.4);
--theme-code-mark-bg: hsl(226, 50%, 33%);
--theme-code-mark-border: hsl(224, 50%, 54%);
--theme-code-ins-bg: hsl(122, 22%, 23%);
--theme-code-ins-border: hsl(128, 42%, 38%);
--theme-code-ins-text: hsl(128, 31%, 65%);
--theme-code-del-bg: hsl(338, 40%, 26%);
--theme-code-del-border: hsl(338, 46%, 53%);
--theme-code-del-text: hsl(338, 36%, 70%);
--theme-bg-gradient: linear-gradient(
180deg,
var(--theme-bg-gradient-top),
var(--theme-bg-gradient-top) calc(var(--theme-navbar-height) + var(--theme-mobile-toc-height)),
var(--theme-bg-gradient-bottom)
);
--theme-glow-highlight: transparent;
--theme-glow-diffuse: hsla(var(--color-base-purple), 65%, 0.5);
--theme-glow-blur: 10px;
}
:root.theme-dark,
.theme-dark ::backdrop {
color-scheme: dark;
/* We lighten-up the orange in dark mode, to help with link contrast. */
--color-orange: var(--color-base-orange), 60%;
--theme-accent-opacity: 0.4;
--theme-accent: hsla(var(--color-orange), 1);
--theme-accent-secondary: hsla(var(--color-orange), 1);
--theme-text-accent: hsla(var(--color-orange), 1);
--theme-dim: hsla(var(--color-gray-90), 0.3);
--theme-dim-light: hsla(var(--color-gray-90), 0.2);
--theme-dim-lighter: hsla(var(--color-gray-90), 0.1);
--theme-divider: hsla(var(--color-gray-95), 0.1);
--theme-shade-subtle: hsla(var(--color-gray-95), 0.4);
--theme-text: hsla(var(--color-gray-90), 1);
--theme-text-light: hsla(var(--color-gray-80), 1);
--theme-text-lighter: hsla(var(--color-gray-70), 1);
--theme-bg: hsl(256, 27%, 19%);
--theme-bg-gradient-top: var(--theme-bg);
--theme-bg-gradient-bottom: hsl(251, 29%, 11%);
--theme-bg-hover: hsla(var(--color-purple), 0.2);
--theme-bg-offset: #0008;
--theme-backdrop-overlay: hsla(var(--color-gray-10), 0.8);
--theme-code-inline-bg: #ffffff16;
--theme-code-inline-text: var(--theme-text-light);
--theme-code-bg: hsla(257, 31%, 11%, 1);
--theme-code-tabs: hsla(261, 40%, 21%, 1);
--theme-code-text: hsla(var(--color-base-white), 80%, 1);
--theme-navbar-bg: var(--theme-bg);
--theme-selection-color: hsla(var(--color-base-white), 100%, 1);
--theme-code-mark-bg: hsl(224, 60%, 25%);
--theme-code-mark-border: hsl(225, 42%, 46%);
--theme-code-ins-bg: hsl(122, 29%, 17%);
--theme-code-ins-border: hsl(128, 41%, 32%);
--theme-code-ins-text: hsl(128, 31%, 55%);
--theme-code-del-bg: hsl(337, 47%, 19%);
--theme-code-del-border: hsl(340, 34%, 43%);
--theme-code-del-text: hsl(340, 24%, 65%);
--theme-glow-highlight: hsla(var(--color-base-purple), 50%, 1);
--theme-glow-diffuse: hsla(var(--color-base-purple), 35%, 0.4);
}
::selection {
color: var(--theme-selection-color);
background-color: var(--theme-selection-bg);
}

View File

@ -1,9 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 128 128">
<path d="M50.4 78.5a75.1 75.1 0 0 0-28.5 6.9l24.2-65.7c.7-2 1.9-3.2 3.4-3.2h29c1.5 0 2.7 1.2 3.4 3.2l24.2 65.7s-11.6-7-28.5-7L67 45.5c-.4-1.7-1.6-2.8-2.9-2.8-1.3 0-2.5 1.1-2.9 2.7L50.4 78.5Zm-1.1 28.2Zm-4.2-20.2c-2 6.6-.6 15.8 4.2 20.2a17.5 17.5 0 0 1 .2-.7 5.5 5.5 0 0 1 5.7-4.5c2.8.1 4.3 1.5 4.7 4.7.2 1.1.2 2.3.2 3.5v.4c0 2.7.7 5.2 2.2 7.4a13 13 0 0 0 5.7 4.9v-.3l-.2-.3c-1.8-5.6-.5-9.5 4.4-12.8l1.5-1a73 73 0 0 0 3.2-2.2 16 16 0 0 0 6.8-11.4c.3-2 .1-4-.6-6l-.8.6-1.6 1a37 37 0 0 1-22.4 2.7c-5-.7-9.7-2-13.2-6.2Z" />
<style>
path { fill: #000; }
@media (prefers-color-scheme: dark) {
path { fill: #FFF; }
}
</style>
</svg>

Before

Width:  |  Height:  |  Size: 749 B

View File

@ -0,0 +1 @@
mkdocs-material

View File

@ -1,38 +0,0 @@
---
---
<footer>
<ul class="footer-links">
<li>
<a href="https://vel.engr.uga.edu"> Virtual Experiences Laboratory</a>
</li>
</ul>
</footer>
<style>
footer {
padding: 6rem 0 2rem;
text-align: center;
color: var(--theme-text-lighter);
font-size: var(--theme-text-xs);
}
.footer-links {
display: flex;
gap: 1.5em;
justify-content: center;
list-style: none;
padding: 0;
}
.footer-links a {
color: var(--theme-text-lighter);
text-decoration: none;
}
.footer-links a:focus,
.footer-links a:hover {
color: var(--theme-text);
text-decoration: underline;
}
</style>

View File

@ -1,201 +0,0 @@
---
const { currentPage } = Astro.props;
---
<header>
<nav class="nav-wrapper">
<div dir="ltr" lang="en" class="logo flex">
<ul>
<li>
<a class="astro" href="https://astro.build/">
<span class="sr-only">Astro</span>
<svg
xmlns="http://www.w3.org/2000/svg"
width="363"
height="102"
viewBox="0 0 363 102"
fill="none"
aria-hidden="true"
>
<style>
.text {
fill: var(--theme-text);
}
.hover {
fill: var(--theme-accent);
}
</style>
<path
class="text"
fill-rule="evenodd"
d="M55.07 14.216l16.81 54.865a72.6 72.6 0 00-20.765-6.984L39.808 24.135a1.475 1.475 0 00-2.827.005L25.81 62.078a72.598 72.598 0 00-20.859 6.995L21.847 14.2c.998-3.243 1.497-4.865 2.47-6.066a8 8 0 013.239-2.392c1.434-.576 3.13-.576 6.524-.576h8.751c3.398 0 5.097 0 6.532.577a8 8 0 013.241 2.397c.972 1.203 1.47 2.827 2.465 6.076z"
clip-rule="evenodd"></path>
<path
fill="#FF5D01"
fill-rule="evenodd"
d="M54.618 71.779c-2.863 2.432-8.578 4.091-15.161 4.091-8.08 0-14.852-2.499-16.649-5.86-.642 1.926-.786 4.13-.786 5.539 0 0-.423 6.915 4.418 11.725 0-2.498 2.037-4.522 4.551-4.522 4.309 0 4.304 3.734 4.3 6.764v.27c0 4.6 2.829 8.541 6.852 10.203a9.22 9.22 0 01-.938-4.064c0-4.386 2.592-6.02 5.604-7.917 2.396-1.51 5.06-3.188 6.894-6.554a12.297 12.297 0 001.502-5.905c0-1.314-.206-2.581-.587-3.77z"
clip-rule="evenodd"></path>
<path
class="text"
d="M126.554 69c13.115 0 21.047-3.14 25.68-9.654 0 2.904.157 5.651.55 8.163h7.774c-.706-4.082-.863-6.75-.863-14.128V43.334c0-10.831-8.403-16.56-24.424-16.56-15.47 0-25.522 5.964-26.779 14.598h8.246c1.256-5.808 7.774-8.87 18.533-8.87 10.602 0 16.885 3.69 16.885 9.969v.785l-24.502 1.413c-9.974.549-13.665 1.962-16.492 4.003-2.67 1.962-4.162 5.023-4.162 8.555C107 64.683 114.696 69 126.554 69zm2.513-5.573c-9.109 0-14.135-2.119-14.135-6.357 0-4.553 3.141-6.593 14.214-7.3l23.01-1.412v1.805c0 8.241-9.66 13.264-23.089 13.264zM196.086 69c16.256 0 22.775-5.337 22.775-13.108 0-6.436-4.006-9.732-14.215-10.596l-19.083-1.49c-5.183-.393-8.088-1.884-8.088-5.102 0-4.082 4.476-6.201 14.135-6.201 10.995 0 16.727 2.198 20.497 7.064l6.361-3.061c-3.927-6.122-12.644-9.733-26.151-9.733-13.9 0-22.224 4.631-22.224 12.244 0 6.829 4.947 10.125 14.292 10.91l18.926 1.492c6.204.47 8.089 1.726 8.089 4.944 0 4.631-4.79 6.829-14.293 6.829-11.544 0-18.847-3.14-22.381-8.87l-6.204 3.376C173.312 64.918 181.715 69 196.086 69zM234.929 34.151v18.916c0 7.77 2.67 15.54 17.198 15.54 3.691 0 8.167-.706 10.131-1.57V60.68c-2.749.628-6.047 1.1-9.267 1.1-6.832 0-10.523-2.67-10.523-9.42V34.151h19.633v-5.887h-19.633V15l-7.539 3.061v10.204h-12.33v5.886h12.33zM280.823 28.265h-6.911v39.244h7.461V52.83c0-5.65 1.099-10.439 4.24-13.735 2.749-3.061 6.283-4.788 12.487-4.788 2.12 0 3.455.157 5.262.471v-7.22c-1.65-.393-3.063-.472-5.184-.472-8.402 0-15.078 4.945-17.355 12.558v-11.38zM334.807 69C351.534 69 363 60.523 363 47.887c0-12.637-11.466-21.114-28.193-21.114-16.727 0-28.193 8.477-28.193 21.114C306.614 60.523 318.08 69 334.807 69zm0-6.2c-12.329 0-20.261-5.809-20.261-14.913 0-9.105 7.932-14.913 20.261-14.913 12.251 0 20.261 5.808 20.261 14.913 0 9.104-8.01 14.912-20.261 14.912z"
></path>
</svg>
</a>
</li>
<li>
<a class="docs" href={`/getting-started/`}>
<span class="sr-only">Docs</span>
<svg
xmlns="http://www.w3.org/2000/svg"
width="226"
height="102"
viewBox="0 0 226 102"
fill="none"
aria-hidden="true"
>
<path
class="docs-path"
fill="currentColor"
d="M25.805 68c14.688 0 24.883-8.41 24.883-21.14 0-12.786-9.62-19.756-24.653-19.756H0V68h25.805zm-14.17-33.005H24.25c8.352 0 14.17 4.09 14.17 12.039 0 8.236-5.3 13.075-14.113 13.075H11.635V34.995zM82.673 69.382c16.704 0 27.418-8.582 27.418-21.83 0-13.248-10.771-21.83-27.418-21.83-16.589 0-27.418 8.582-27.418 21.83 0 13.19 10.83 21.83 27.418 21.83zm0-8.64c-9.1 0-15.149-5.299-15.149-13.19 0-7.891 6.048-13.19 15.15-13.19 9.1 0 15.205 5.299 15.205 13.19 0 7.891-6.105 13.19-15.206 13.19zM141.497 69.382c13.306 0 22.637-5.299 25.978-14.572l-11.866-2.535c-1.67 5.415-6.393 8.295-13.709 8.295-9.216 0-15.033-5.127-15.033-13.018 0-8.006 5.702-13.018 14.918-13.018 7.43 0 12.154 3.053 13.709 8.64l12.038-2.13c-2.707-9.562-12.268-15.322-25.574-15.322-16.128 0-27.302 9.043-27.302 22.003 0 13.133 10.425 21.657 26.841 21.657zM194.94 69.382c14.745 0 23.212-5.01 23.212-14.054 0-7.603-4.665-10.944-15.955-12.096l-11.289-1.094c-5.242-.576-6.97-1.556-6.97-4.09 0-2.765 3.456-4.262 9.792-4.262 7.834 0 13.709 2.476 16.762 6.508l7.315-6.163c-5.069-5.702-13.133-8.41-23.501-8.41-13.997 0-21.888 4.781-21.888 12.903 0 7.546 4.781 11.232 14.803 12.326l12.557 1.383c4.896.518 6.624 1.555 6.624 4.09 0 3.225-3.456 4.723-10.886 4.723-8.352 0-14.688-3.226-18.087-8.007l-8.294 5.818c4.205 6.451 13.709 10.425 25.805 10.425z"
></path>
</svg>
</a>
</li>
</ul>
</div>
</nav>
</header>
<style>
header {
position: fixed;
left: 0;
top: 0;
right: 0;
height: var(--theme-navbar-height);
z-index: 11;
padding: 2rem 0;
background-color: var(--theme-navbar-bg);
display: flex;
align-items: center;
justify-content: left;
overflow: hidden;
}
ul,
li {
all: inherit;
flex-grow: 0;
}
.nav-wrapper {
display: flex;
align-items: center;
justify-content: center;
gap: 0.75rem;
width: 100%;
padding-inline: var(--min-spacing-inline);
}
/* If the device is likely to show a scrollbar gutter, reserve space for it */
@media (hover: hover) {
.nav-wrapper {
max-width: calc(100vw - 1.1rem);
}
}
.logo {
display: flex;
justify-content: flex-start;
font-size: 1rem;
flex-grow: 1;
flex-shrink: 0;
font-weight: 600;
line-height: 1;
color: hsla(var(--color-base-white), 100%, 1);
text-decoration: none;
gap: 0.5em;
}
:global([dir='rtl']) .logo {
justify-content: flex-end;
}
.logo a {
padding: 0.5em 0.25em;
margin: -0.5em -0.25em;
}
.logo svg {
height: 40px;
width: auto;
display: block;
color: var(--theme-accent);
}
.logo .hover {
opacity: 0;
}
.logo a {
transition: transform 180ms ease-out;
}
.logo a:hover,
.logo a:focus {
opacity: 1;
transform: translateY(-2px);
}
.logo a:focus:not(:focus-visible) {
outline: none;
}
.logo h1 {
font: inherit;
color: inherit;
margin: 0;
}
.astro {
overflow: hidden;
width: 41px;
}
.docs {
display: none;
}
@media (min-width: 20em) {
.docs {
display: inherit;
max-width: 80px;
}
}
@media (min-width: 23.5em) {
.docs {
max-width: none;
}
.nav-wrapper {
gap: 1rem;
}
}
@media (min-width: 50em) {
header {
padding: 2.5rem 0 1.5rem 0;
}
.astro {
width: auto;
}
}
@media (forced-colors: active) {
.text {
fill: LinkText;
}
.docs-path {
fill: ActiveText;
}
}
</style>

View File

@ -1,235 +0,0 @@
---
import { removeLeadingSlash, removeTrailingSlash } from "../util";
export interface Props {
currentPage: string;
}
const { currentPage } = Astro.props as Props;
const currentPageMatch = removeLeadingSlash(removeTrailingSlash(currentPage));
const content = [
{
title: "Setup",
children: [
{
title: "Getting Started",
url: "/getting_started",
},
],
},
{
title: "Guides",
children: [],
},
{
title: "Classes",
children: [],
},
];
---
<nav>
<ul class={`nav-groups`}>
{
content.map((section) => (
<li class:list={["nav-group"]}>
<details open>
<summary class="nav-group-title">
<h2>
{section.title}
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 1 16 16"
width="16"
height="16"
aria-hidden="true"
>
<path
fill-rule="evenodd"
d="M6.22 3.22a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06L9.94 8 6.22 4.28a.75.75 0 010-1.06z"
/>
</svg>
</h2>
</summary>
<ul>
{section.children.map((child) => (
<li class="nav-link">
<a
href={child.url}
aria-current={`${
currentPageMatch.endsWith(child.url) ? "page" : "false"
}`}
/>
</li>
))}
</ul>
</details>
</li>
))
}
</ul>
</nav>
<!-- Preserve sidebar scroll across page loads -->
<script is:inline>
{
const leftSidebar = document.querySelector(".nav-groups");
const leftSidebarScroll = localStorage.getItem("sidebar-scroll");
if (leftSidebarScroll !== null) {
leftSidebar.scrollTop = parseInt(leftSidebarScroll, 10);
}
window.addEventListener("beforeunload", () => {
localStorage.setItem("sidebar-scroll", leftSidebar.scrollTop);
});
}
</script>
<style>
nav {
width: 100%;
height: 100%;
font-size: var(--theme-text-sm);
}
.nav-groups {
padding-top: 1rem;
max-height: 100%;
overflow-x: visible;
overflow-y: auto;
}
@media (min-width: 50em) {
.nav-groups {
position: fixed;
top: calc(var(--theme-navbar-height) + 3rem);
bottom: 0;
width: calc(
var(--theme-left-sidebar-width) - var(--min-spacing-inline) * 1.6
);
}
}
@media not screen and (min-width: 50em) {
nav :global(.TabGroup) {
display: none;
}
}
.nav-group {
margin-bottom: 1rem;
}
.nav-group .placeholder {
opacity: 0.6;
text-align: center;
display: block;
}
@media (max-width: 50em) {
.sm-hidden {
display: none !important;
}
}
@media (min-width: 50em) {
.nav-group {
display: none;
margin-bottom: 1.75rem;
}
}
.nav-group.active {
display: block;
}
.nav-group-title {
font-size: 1em;
font-weight: 600;
padding: 0.3rem 2rem;
}
.nav-link a {
margin: 1px;
padding: 0.3rem 2rem;
font: inherit;
color: var(--theme-text-lighter);
text-decoration: none;
display: block;
&:hover,
&:focus {
background-color: var(--theme-bg-hover);
}
&[aria-current="page"],
&[data-current-parent="true"] {
color: var(--theme-text);
background-color: var(--theme-bg-accent);
font-weight: 500;
/* Indicates the current page for forced colors users in older browsers */
outline: 1px solid transparent;
&:focus {
outline: 2px solid;
}
}
@media (forced-colors: active) {
&[aria-current="page"],
&[data-current-parent="true"] {
border: 1px solid LinkText;
}
}
}
@media (min-width: 50em) {
.nav-group-title,
.nav-link a {
padding: 0.2rem 1rem;
}
}
:global(:root.theme-dark) .nav-link a[aria-current="page"],
:global(:root.theme-dark) .nav-link a[data-current-parent="true"] {
color: hsla(var(--color-base-white), 100%, 1);
}
.fallback {
font-size: 0.75em;
line-height: 1;
font-weight: bold;
color: var(--theme-text-light);
}
details > summary {
list-style: none;
}
details > summary::marker,
details > summary::-webkit-details-marker {
display: none;
}
details[open] > summary svg {
transform: rotate(90deg);
}
summary {
cursor: pointer;
}
summary h2 {
all: inherit;
margin: 0;
padding: 0;
}
svg {
transform: rotate(0);
transition: 0.15s transform ease;
vertical-align: middle;
}
:global([dir="rtl"]) svg {
transform: rotate(180deg);
}
svg path {
fill: currentColor;
}
</style>

View File

@ -1 +0,0 @@
/// <reference types="astro/client" />

View File

@ -1,99 +0,0 @@
---
import Header from "../components/Header.astro";
import Footer from "../components/Footer.astro";
import LeftSidebar from "../components/LeftSidebar.astro";
interface Props {
title: string;
description: string;
}
const { title, description } = Astro.props;
const url = Astro.url;
const currentPage = url.pathname;
---
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="description" content={description} />
<meta name="viewport" content="width=device-width" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<meta name="generator" content={Astro.generator} />
<title>{title}</title>
<!-- <link rel="stylesheet" href="/css/theme.css" />
<link rel="stylesheet" href="/css/index.css" /> -->
<link rel="stylesheet" href="/css/pico.classless.min.css" />
</head>
<body>
<!-- Header -->
<header>
<hgroup>
<h1>VelNet Unity</h1>
<h2>An open source networking library for Unity</h2>
</hgroup>
</header>
</body>
<!-- ./ Header -->
<!-- Main -->
<main>
<grid>
<aside>
<LeftSidebar currentPage={currentPage} />
</aside>
<div>
<slot />
</div>
</grid>
</main>
<!-- ./ Main -->
<!-- Footer -->
<footer>
<small
>Built with <a href="https://picocss.com">Pico</a> •
<a
href="https://github.com/picocss/examples/blob/master/v1-classless/index.html"
>Source code</a
></small
>
</footer>
<!-- ./ Footer -->
<!-- Minimal theme switcher -->
<!-- <script src="js/minimal-theme-switcher.js"></script> -->
</html>
<style is:global>
/* Red Light scheme (Default) */
/* Can be forced with data-theme="light" */
[data-theme="light"],
:root:not([data-theme="dark"]) {
--primary: #e53935;
--primary-hover: #d32f2f;
--primary-focus: rgba(229, 57, 53, 0.125);
--primary-inverse: #fff;
}
/* Red Dark scheme (Auto) */
/* Automatically enabled if user has Dark mode enabled */
@media only screen and (prefers-color-scheme: dark) {
:root:not([data-theme]) {
--primary: #e53935;
--primary-hover: #f44336;
--primary-focus: rgba(229, 57, 53, 0.25);
--primary-inverse: #fff;
--background-color: #222;
}
}
/* Red (Common styles) */
:root {
/* --form-element-active-border-color: var(--primary);
--form-element-focus-color: var(--primary-focus); */
--switch-color: var(--primary-inverse);
--switch-checked-background-color: var(--primary);
}
</style>

View File

@ -1,472 +0,0 @@
<!-- Header -->
<header>
<hgroup>
<h1>Classless example</h1>
<h2>Just a pure semantic HTML markup, without <code>.classes</code></h2>
</hgroup>
<nav>
<ul>
<li>
<details role="list">
<summary aria-haspopup="listbox" role="button">Theme</summary>
<ul role="listbox">
<li><a href="#" data-theme-switcher="auto">Auto</a></li>
<li><a href="#" data-theme-switcher="light">Light</a></li>
<li><a href="#" data-theme-switcher="dark">Dark</a></li>
</ul>
</details>
</li>
<li>
<details role="list">
<summary aria-haspopup="listbox">Examples (v1)</summary>
<ul role="listbox">
<li><a href="../v1-preview/">Preview</a></li>
<li><a href="../v1-preview-rtl/">Right-to-left</a></li>
<li><a href="../v1-classless/">Classless</a></li>
<li><a href="../v1-basic-template/">Basic template</a></li>
<li><a href="../v1-company/">Company</a></li>
<li><a href="../v1-google-amp/">Google Amp</a></li>
<li><a href="../v1-sign-in/">Sign in</a></li>
<li><a href="../v1-bootstrap-grid/">Bootstrap grid</a></li>
</ul>
</details>
</li>
</ul>
</nav>
</header>
<!-- ./ Header -->
<!-- Main -->
<main>
<!-- Preview -->
<section id="preview">
<h2>Preview</h2>
<p>
Sed ultricies dolor non ante vulputate hendrerit. Vivamus sit amet
suscipit sapien. Nulla iaculis eros a elit pharetra egestas.
</p>
<form>
<input
type="text"
name="firstname"
placeholder="First name"
aria-label="First name"
required
/>
<input
type="email"
name="email"
placeholder="Email address"
aria-label="Email address"
required
/>
<fieldset>
<label for="terms">
<input type="checkbox" role="switch" id="terms" name="terms" />
I agree to the <a href="#" onclick="event.preventDefault()"
>Privacy Policy</a
>
</label>
</fieldset>
<button type="submit">Subscribe</button>
</form>
</section>
<!-- ./ Preview -->
<!-- Typography-->
<section id="typography">
<h2>Typography</h2>
<p>
Aliquam lobortis vitae nibh nec rhoncus. Morbi mattis neque eget efficitur
feugiat. Vivamus porta nunc a erat mattis, mattis feugiat turpis pretium.
Quisque sed tristique felis.
</p>
<!-- Blockquote-->
<blockquote>
"Maecenas vehicula metus tellus, vitae congue turpis hendrerit non. Nam at
dui sit amet ipsum cursus ornare."
<footer>
<cite>- Phasellus eget lacinia</cite>
</footer>
</blockquote>
<!-- Lists-->
<h3>Lists</h3>
<ul>
<li>Aliquam lobortis lacus eu libero ornare facilisis.</li>
<li>Nam et magna at libero scelerisque egestas.</li>
<li>Suspendisse id nisl ut leo finibus vehicula quis eu ex.</li>
<li>Proin ultricies turpis et volutpat vehicula.</li>
</ul>
<!-- Inline text elements-->
<h3>Inline text elements</h3>
<figure>
<table>
<tbody>
<tr>
<td><a href="#" onclick="event.preventDefault()">Link</a></td>
<td><strong>Bold</strong></td>
<td><em>Italic</em></td>
</tr>
<tr>
<td><u>Underline</u></td>
<td><del>Deleted</del></td>
<td><ins>Inserted</ins></td>
</tr>
<tr>
<td><s>Strikethrough</s></td>
<td><small>Small</small></td>
<td
><abbr title="Abbreviation" data-tooltip="Abbreviation"
>Abbr.</abbr
></td
>
</tr>
<tr>
<td>Text <sub>Sub</sub></td>
<td>Text <sup>Sup</sup></td>
<td><kbd>Kbd</kbd></td>
</tr>
<tr>
<td><mark>Highlighted</mark></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
</figure>
<!-- Headings-->
<h3>Heading 3</h3>
<p>
Integer bibendum malesuada libero vel eleifend. Fusce iaculis turpis
ipsum, at efficitur sem scelerisque vel. Aliquam auctor diam ut purus
cursus fringilla. Class aptent taciti sociosqu ad litora torquent per
conubia nostra, per inceptos himenaeos.
</p>
<h4>Heading 4</h4>
<p>
Cras fermentum velit vitae auctor aliquet. Nunc non congue urna, at
blandit nibh. Donec ac fermentum felis. Vivamus tincidunt arcu ut lacus
hendrerit, eget mattis dui finibus.
</p>
<h5>Heading 5</h5>
<p>
Donec nec egestas nulla. Sed varius placerat felis eu suscipit. Mauris
maximus ante in consequat luctus. Morbi euismod sagittis efficitur. Aenean
non eros orci. Vivamus ut diam sem.
</p>
<h6>Heading 6</h6>
<p>
Ut sed quam non mauris placerat consequat vitae id risus. Vestibulum
tincidunt nulla ut tortor posuere, vitae malesuada tortor molestie. Sed
nec interdum dolor. Vestibulum id auctor nisi, a efficitur sem. Aliquam
sollicitudin efficitur turpis, sollicitudin hendrerit ligula semper id.
Nunc risus felis, egestas eu tristique eget, convallis in velit.
</p>
<!-- Medias-->
<figure>
<img
src="img/aleksandar-jason-a562ZEFKW8I-unsplash-2000x1000.jpg"
alt="Minimal landscape"
/>
<figcaption>
Image from
<a href="https://unsplash.com/photos/a562ZEFKW8I" target="_blank"
>unsplash.com</a
>
</figcaption>
</figure>
</section>
<!-- ./ Typography-->
<!-- Button-->
<section id="button">
<h2>Button</h2>
<button>Primary</button>
</section>
<!-- ./ Button -->
<!-- Form elements-->
<section id="form">
<form>
<h2>Form elements</h2>
<!-- Search -->
<label for="search">Search</label>
<input type="search" id="search" name="search" placeholder="Search" />
<!-- Text -->
<label for="text">Text</label>
<input type="text" id="text" name="text" placeholder="Text" />
<small>Curabitur consequat lacus at lacus porta finibus.</small>
<!-- Select -->
<label for="select">Select</label>
<select id="select" name="select" required>
<option value="" selected>Select…</option>
<option>…</option>
</select>
<!-- File browser -->
<label for="file"
>File browser
<input type="file" id="file" name="file" />
</label>
<!-- Range slider control -->
<label for="range"
>Range slider
<input
type="range"
min="0"
max="100"
value="50"
id="range"
name="range"
/>
</label>
<!-- Valid -->
<label for="valid">
Valid
<input
type="text"
id="valid"
name="valid"
placeholder="Valid"
aria-invalid="false"
/>
</label>
<!-- Invalid -->
<label for="invalid">
Invalid
<input
type="text"
id="invalid"
name="invalid"
placeholder="Invalid"
aria-invalid="true"
/>
</label>
<!-- Disabled -->
<label for="disabled">
Disabled
<input
type="text"
id="disabled"
name="disabled"
placeholder="Disabled"
disabled
/>
</label>
<!-- Date-->
<label for="date"
>Date
<input type="date" id="date" name="date" />
</label>
<!-- Time-->
<label for="time"
>Time
<input type="time" id="time" name="time" />
</label>
<!-- Color-->
<label for="color"
>Color
<input type="color" id="color" name="color" value="#0eaaaa" />
</label>
<!-- Checkboxes -->
<fieldset>
<legend><strong>Checkboxes</strong></legend>
<label for="checkbox-1">
<input type="checkbox" id="checkbox-1" name="checkbox-1" checked />
Checkbox
</label>
<label for="checkbox-2">
<input type="checkbox" id="checkbox-2" name="checkbox-2" />
Checkbox
</label>
</fieldset>
<!-- Radio buttons -->
<fieldset>
<legend><strong>Radio buttons</strong></legend>
<label for="radio-1">
<input
type="radio"
id="radio-1"
name="radio"
value="radio-1"
checked
/>
Radio button
</label>
<label for="radio-2">
<input type="radio" id="radio-2" name="radio" value="radio-2" />
Radio button
</label>
</fieldset>
<!-- Switch -->
<fieldset>
<legend><strong>Switches</strong></legend>
<label for="switch-1">
<input
type="checkbox"
id="switch-1"
name="switch-1"
role="switch"
checked
/>
Switch
</label>
<label for="switch-2">
<input type="checkbox" id="switch-2" name="switch-2" role="switch" />
Switch
</label>
</fieldset>
<!-- Buttons -->
<input type="reset" value="Reset" onclick="event.preventDefault()" />
<input type="submit" value="Submit" onclick="event.preventDefault()" />
</form>
</section>
<!-- ./ Form elements-->
<!-- Tables -->
<section id="tables">
<h2>Tables</h2>
<figure>
<table role="grid">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Heading</th>
<th scope="col">Heading</th>
<th scope="col">Heading</th>
<th scope="col">Heading</th>
<th scope="col">Heading</th>
<th scope="col">Heading</th>
<th scope="col">Heading</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
</tr>
</tbody>
</table>
</figure>
</section>
<!-- ./ Tables -->
<!-- Accordions -->
<section id="accordions">
<h2>Accordions</h2>
<details>
<summary>Accordion 1</summary>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque
urna diam, tincidunt nec porta sed, auctor id velit. Etiam venenatis
nisl ut orci consequat, vitae tempus quam commodo. Nulla non mauris
ipsum. Aliquam eu posuere orci. Nulla convallis lectus rutrum quam
hendrerit, in facilisis elit sollicitudin. Mauris pulvinar pulvinar mi,
dictum tristique elit auctor quis. Maecenas ac ipsum ultrices, porta
turpis sit amet, congue turpis.
</p>
</details>
<details open>
<summary>Accordion 2</summary>
<ul>
<li>Vestibulum id elit quis massa interdum sodales.</li>
<li>Nunc quis eros vel odio pretium tincidunt nec quis neque.</li>
<li>Quisque sed eros non eros ornare elementum.</li>
<li>Cras sed libero aliquet, porta dolor quis, dapibus ipsum.</li>
</ul>
</details>
</section>
<!-- ./ Accordions -->
<!-- Article-->
<article id="article">
<h2>Article</h2>
<p>
Nullam dui arcu, malesuada et sodales eu, efficitur vitae dolor. Sed
ultricies dolor non ante vulputate hendrerit. Vivamus sit amet suscipit
sapien. Nulla iaculis eros a elit pharetra egestas. Nunc placerat
facilisis cursus. Sed vestibulum metus eget dolor pharetra rutrum.
</p>
<footer>
<small>Duis nec elit placerat, suscipit nibh quis, finibus neque.</small>
</footer>
</article>
<!-- ./ Article-->
<!-- Progress -->
<section id="progress">
<h2>Progress bar</h2>
<progress id="progress-1" value="25" max="100"></progress>
<progress id="progress-2"></progress>
</section>
<!-- ./ Progress -->
<!-- Loading -->
<section id="loading">
<h2>Loading</h2>
<article aria-busy="true"></article>
<button aria-busy="true">Please wait…</button>
</section>
<!-- ./ Loading -->
</main>
<!-- ./ Main -->
<!-- Footer -->
<footer>
<small
>Built with <a href="https://picocss.com">Pico</a> •
<a
href="https://github.com/picocss/examples/blob/master/v1-classless/index.html"
>Source code</a
></small
>
</footer>
<!-- ./ Footer -->
<!-- Minimal theme switcher -->
<!-- <script src="js/minimal-theme-switcher.js"></script> -->

View File

@ -1,9 +0,0 @@
/** Remove \ and / from beginning of string */
export function removeLeadingSlash(path: string) {
return path.replace(/^[/\\]+/, '');
}
/** Remove \ and / from end of string */
export function removeTrailingSlash(path: string) {
return path.replace(/[/\\]+$/, '');
}

View File

@ -1,8 +0,0 @@
/** @type {import('tailwindcss').Config} */
module.exports = {
content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}'],
theme: {
extend: {},
},
plugins: [],
}

View File

@ -1,3 +0,0 @@
{
"extends": "astro/tsconfigs/strict"
}