folk-canvas/website/canvas/index.html

167 lines
5.8 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Recursive:slnt,wght,CASL,CRSV,MONO@-15..0,300..1000,0..1,0..1,0..1&display=swap"
rel="stylesheet"
/>
<title>Folk Canvas</title>
<style>
html {
height: 100%;
background: #f5f5f5;
}
body {
margin: 0;
min-height: 100%;
}
folk-sand {
position: fixed;
inset: 0;
cursor: url('data:image/x-icon;base64,AAACAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAAAAAAAAAAEAAAAAAAAAAAAAAAR0dHAP///wAiIiIAMjIyABYWFgA9PT0AODg4AE9PTwBfX18AKioqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIiIiIiIgAAAAAAAAAACgAAAKMAAAIAAAAAAAAAAAAAAAoiMAACAAAAAAAAAAAAAAACIiYAAgAAAAAAAAAAYAAAIiIiMAIAAAAAAAAAADAAAiIiIiACAAAAAAAAAAUFACIiIiIiQgAAAAAAAAADAKIiIiIiIgIAAAAAAAAAAGMiImIiIiECAAAAAAAAAAUAIiApIiJgAgAAAAAAAAAApgIiAiIgAAIAAAAAAAAAAAAKIoIiAAACAAAAAAAAAAAABwICIAAAAgAAAAAAAAAAAAAAAlAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAACgAIAAAgAAAAAAAAAAAAAAAKAAAAIAAAAAAAAAD///////////////////////////////////////////////////////////////////////////////+AAH//359//58Pf/8eB3//HAN//xgBf/8QAH//AAB//wABf/8AA3//gAd//8APf//wD3///C9///5vf//+73///x9//w=='),
auto;
}
main {
position: relative;
font-family: 'Recursive', Courier, monospace;
font-variation-settings:
'slnt' 0,
'wght' 400,
'CASL' 1,
'CRSV' 0,
'MONO' 0;
max-width: 800px;
margin: 20px auto;
padding: 20px;
border-radius: 2px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
background: rgba(255, 255, 255, 0.8);
}
main,
ul {
> * {
pointer-events: auto;
}
pointer-events: none;
}
h1 {
margin: 0;
margin-bottom: 1em;
text-align: center;
font-variation-settings:
'CASL' 0,
'MONO' 1;
width: fit-content;
}
h2 {
font-size: 1.2em;
font-weight: 800;
margin: 1em 0 0;
font-variation-settings: 'wght' 800;
width: fit-content;
}
ul {
list-style-type: none;
line-height: 1.8;
padding-left: 0;
margin: 0;
width: fit-content;
}
li {
display: grid;
grid-template-columns: 2em 1fr;
padding-left: 0;
text-indent: 0;
width: fit-content;
}
li::before {
content: '➔';
justify-self: center;
}
#questions li::before {
content: attr(data-symbol);
}
a {
color: #22282f;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
#questions {
font-size: 0.9rem;
font-variation-settings: 'slnt' 1;
margin-bottom: 2rem;
}
#disclaimer {
font-size: 0.75rem;
font-style: italic;
}
</style>
<script type="module">
import '@labs/standalone/folk-sand.ts';
const alchemicalSymbols =
'🜁🜂🜃🜄🜅🜆🜇🜈🜉🜊🜋🜌🜍🜎🜏🜐🜑🜒🜓🜔🜕🜖🜗🜘🜙🜚🜛🜜🜝🜞🜟🜠🜡🜢🜣🜤🜥🜦🜧🜨🜩🜪🜫🜬🜭🜮🜯🜰🜱🜲🜳🜴🜵🜶🜸🜹🜺🜻🜼🜾🜿🝀🝁🝂🝃🝄🝅🝆🝈🝉🝊🝋🝌🝍🝎🝏🝐🝑🝒🝓🝔🝕🝖🝗🝘🝙🝚🝛🝜🝝🝞🝟🝠🝡🝢🝣🝤🝥🝦🝧🝩🝪🝬🝭🝮🝯🝰🝲🝳';
document.addEventListener('DOMContentLoaded', () => {
const questionItems = document.querySelectorAll('#questions li');
questionItems.forEach((li) => {
const symbols = [...alchemicalSymbols];
const randomSymbol = symbols[Math.floor(Math.random() * symbols.length)];
li.setAttribute('data-symbol', randomSymbol);
});
});
</script>
</head>
<body>
<folk-sand initial-sand="0"></folk-sand>
<main>
<h1> Folk Canvas [<a href="https://github.com/folk-canvas/folk-canvas">Github</a>] </h1>
<ul id="questions">
<li>How do we make the web feel more alive and less rigid and closed off?</li>
<li>How can we more easily compose web pages and their data together?</li>
<li>How seamlessly can we turn an HTML document into a spatial canvas and visa versa?</li>
<li>What would it look like if the browser had primitives for building spatial canvases?</li>
<li>How can we annotate, re-layout, and program web pages we did not make or distribute?</li>
<li
>How can we compose visual programming interfaces, hypermedia, and LLMs that can be embedded into on any web
page?</li
>
<li
>How can we use spatial qualities like proximity and connection as a communication channel for hypermedia and
websites to communicate with each other?</li
>
</ul>
<h2>Experiments from the lab</h2>
<p id="disclaimer">
These experiments (like this page) are very raw, intended to poke at new primitives and ideas. Make sure to
checkout the dev tools, all of these are just authored in HTML!
</p>
<ul id="links">
{{ LINKS }}
</ul>
</main>
</body>
</html>