diff --git a/index.html b/index.html
index 5f2bba3..9b6e81b 100644
--- a/index.html
+++ b/index.html
@@ -1271,7 +1271,7 @@ button.sidebar-toggle{
{"created":"20230425164931250","title":"$:/state/folded/AFRAME template","text":"show","modified":"20230425164935940"},
{"created":"20230425164931250","title":"$:/state/folded/GLSL shader template","text":"show","modified":"20230425164939576"},
{"created":"20230424142403302","text":"checked","title":"$:/state/import/select-all","modified":"20230424142404392"},
-{"created":"20230423163640468","title":"$:/state/notebook-sidebar","text":"yes","modified":"20260918074941607"},
+{"created":"20230423163640468","title":"$:/state/notebook-sidebar","text":"no","modified":"20260922102857492"},
{"created":"20230423163641722","title":"$:/state/notebook-sidebar-section","text":"Home","modified":"20260918081229147"},
{"created":"20230427102758222","title":"$:/state/plugin-info--1887569658-$:/plugins/ihm/tidgraph--50210113","text":"documentation","modified":"20230427102759911"},
{"created":"20230427092525294","title":"$:/state/plugin-info--391242618-$:/plugins/tiddlywiki/browser-storage","text":"yes","modified":"20230427092525375"},
@@ -1280,7 +1280,7 @@ button.sidebar-toggle{
{"created":"20240627123502664","title":"$:/state/plugin-info-1605320774-$:/themes/nico/notebook--1711715474","text":"contents","modified":"20240627123505187"},
{"created":"20230424093627704","title":"$:/state/plugin-info-833095967-Draft of '$:/core'---1604322978","text":"readme","modified":"20230424093629208"},
{"created":"20230423163649566","title":"$:/state/showeditpreview","text":"no","modified":"20260917122751795"},
-{"created":"20230504174435745","title":"$:/state/sidebar","text":"βnoβ","modified":"20260918074904059"},
+{"created":"20230504174435745","title":"$:/state/sidebar","text":"βnoβ","modified":"20260922102847860"},
{"created":"20230423163453188","title":"$:/state/tab--1963855381","text":"$:/core/ui/ControlPanel/Palette","modified":"20240718192009185"},
{"created":"20230427092954391","title":"$:/state/tab--2112689675","text":"$:/core/ui/ControlPanel/Advanced","modified":"20250211170652750"},
{"created":"20230424093058379","title":"$:/state/tab--697582678","text":"$:/core/ui/ControlPanel/Settings/TiddlyWiki","modified":"20230427093030201"},
@@ -1356,7 +1356,7 @@ button.sidebar-toggle{
{"created":"20260416080414879","title":"$:/state/toc/Reference/optional levels-π level4: operators--403145756","text":"open","modified":"20260416080414879"},
{"created":"20230622111759784","title":"$:/state/toc/Reference/The parser-THREE.js--403145756","text":"open","modified":"20230622111759784"},
{"title":"$:/status/RequireReloadDueToPluginChange","text":"no"},
-{"title":"$:/StoryList","text":"","list":"[[XR Fragments]]"},
+{"title":"$:/StoryList","created":"20260922102900669","text":"","list":"[[XR Fragments]]","modified":"20260922102900669"},
{"created":"20230423163445948","title":"$:/theme","text":"$:/themes/nico/notebook","modified":"20240718191943667"},
{"created":"20240627122947980","text":"{\n \"tiddlers\": {\n \"$:/themes/nico/notebook/LICENSE\": {\n \"title\": \"$:/themes/nico/notebook/LICENSE\",\n \"created\": \"20200419141443144\",\n \"modified\": \"20210118213330307\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\nMIT License Copyright (c) 2020 [[Nicolas Petton|https://nicolas.petton.fr]] nicolas@petton.fr\\n\\nPermission is hereby granted, free of charge, to any person obtaining a copy\\nof this software and associated documentation files (the \\\"Software\\\"), to deal\\nin the Software without restriction, including without limitation the rights\\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\\ncopies of the Software, and to permit persons to whom the Software is furnished\\nto do so, subject to the following conditions:\\n\\nThe above copyright notice and this permission notice (including the next\\nparagraph) shall be included in all copies or substantial portions of the\\nSoftware.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\\nOR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF\\nOR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\\n\"\n },\n \"$:/themes/nico/notebook/themetweaks\": {\n \"title\": \"$:/themes/nico/notebook/themetweaks\",\n \"created\": \"20201217172915960\",\n \"modified\": \"20210123211851680\",\n \"tags\": \"$:/tags/ControlPanel/Appearance\",\n \"caption\": \"{{$:/language/ThemeTweaks/ThemeTweaks}}\",\n \"text\": \"\\\\define lingo-base() $:/language/ThemeTweaks/\\n\\nYou can tweak certain aspects of the ''Notebook'' theme.\\n\\n! \u003C\u003Clingo Options>>\\n\\n|\u003C$link to=\\\"$:/themes/nico/notebook/options/stickytitles\\\">\u003C\u003Clingo Options/StickyTitles>>\u003C/$link>\u003Cbr>//\u003C\u003Clingo Options/StickyTitles/Hint>>// |\u003C$select tiddler=\\\"$:/themes/nico/notebook/options/stickytitles\\\">\u003Coption value=\\\"no\\\">{{$:/language/No}}\u003C/option>\u003Coption value=\\\"yes\\\">{{$:/language/Yes}}\u003C/option>\u003C/$select> |\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/options/codewrapping\\\">\u003C\u003Clingo Options/CodeWrapping>>\u003C/$link> |\u003C$select tiddler=\\\"$:/themes/tiddlywiki/vanilla/options/codewrapping\\\">\u003Coption value=\\\"pre\\\">{{$:/language/No}}\u003C/option>\u003Coption value=\\\"pre-wrap\\\">{{$:/language/Yes}}\u003C/option>\u003C/$select> |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/options/reveal-tiddler-controls-on-hover\\\">Reveal tiddler controls on mouseover\u003C/$link> |\u003C$select tiddler=\\\"$:/themes/nico/notebook/options/reveal-tiddler-controls-on-hover\\\">\u003Coption value=\\\"no\\\">{{$:/language/No}}\u003C/option>\u003Coption value=\\\"yes\\\">{{$:/language/Yes}}\u003C/option>\u003C/$select> |\\n\\n! \u003C\u003Clingo Settings>>\\n\\n|\u003C$link to=\\\"$:/themes/nico/notebook/settings/fontfamily\\\">\u003C\u003Clingo Settings/FontFamily>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/settings/fontfamily\\\" default=\\\"\\\" tag=\\\"input\\\"/> | |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/settings/codefontfamily\\\">\u003C\u003Clingo Settings/CodeFontFamily>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/settings/codefontfamily\\\" default=\\\"\\\" tag=\\\"input\\\"/> | |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/settings/editorfontfamily\\\">\u003C\u003Clingo Settings/EditorFontFamily>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/settings/editorfontfamily\\\" default=\\\"\\\" tag=\\\"input\\\"/> | |\\n\\n! \u003C\u003Clingo Metrics>>\\n\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\\\">\u003C\u003Clingo Metrics/FontSize>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\\\">\u003C\u003Clingo Metrics/LineHeight>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\\\">\u003C\u003Clingo Metrics/BodyFontSize>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/metrics/bodyfontsize\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\\\">\u003C\u003Clingo Metrics/BodyLineHeight>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/metrics/bodylineheight\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\\\">\u003C\u003Clingo Metrics/SidebarBreakpoint>>\u003C/$link>\u003Cbr>//\u003C\u003Clingo Metrics/SidebarBreakpoint/Hint>>// |^\u003C$edit-text tiddler=\\\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/metrics/sidebar-width\\\">\u003C\u003Clingo Metrics/SidebarWidth>>\u003C/$link>\u003Cbr>//\u003C\u003Clingo Metrics/SidebarWidth/Hint>>// |^\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/metrics/sidebar-width\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/metrics/story-width\\\">\u003C\u003Clingo Metrics/StoryWidth>>\u003C/$link>\u003Cbr>//\u003C\u003Clingo Metrics/StoryWidth/Hint>>// |^\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/metrics/story-width\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n\\n\"\n },\n \"$:/themes/nico/notebook/base\": {\n \"title\": \"$:/themes/nico/notebook/base\",\n \"created\": \"20200419141443144\",\n \"modified\": \"20210120224227503\",\n \"tags\": \"$:/tags/Stylesheet\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\\n\\n\\\\define if-sidebar(text)\\n \u003C$reveal state=\\\"$:/state/notebook-sidebar\\\" type=\\\"match\\\" text=\\\"yes\\\">\\n $text$\\n \u003C/$reveal>\\n\\\\end\\n\\n\\\\define if-reveal-tiddler-controls-on-hover(text)\\n \u003C$reveal state=\\\"$:/themes/nico/notebook/options/reveal-tiddler-controls-on-hover\\\" type=\\\"match\\\" text=\\\"yes\\\">\\n $text$\\n \u003C/$reveal>\\n\\\\end\\n \\n/* Top and bottom bars */\\n\\n/* Hide the top-right bar */\\n.tc-topbar.tc-topbar-right {\\n display: none;\\n}\\n\\ndiv.tc-sidebar-header {\\n padding: 0;\\n min-height: 0;\\n}\\n\\n.tc-story-river {\\n padding: 6px 0 !important;\\n width: 100% !important;\\n max-width: {{$:/themes/nico/notebook/metrics/story-width}} !important;\\n margin: 0 auto !important;\\n margin-top: 34px !important;\\n}\\n\\ndiv.tc-tiddler-frame {\\n width: 100%;\\n margin: 20px 0;\\n background: \u003C\u003Ccolour tiddler-background>>;\\n box-shadow: 0 5px 20px rgba(0,0,0, 0.12);\\n border-radius: 6px;\\n padding: 42px 60px 60px 60px;\\n}\\n\\nh1.tc-site-title {\\n margin-top: 14px;\\n font-size: 1.5em !important;\\n}\\n\\n.nc-bar {\\n padding: 10px;\\n height: {{$:/themes/nico/notebook/metrics/topbar-height}};\\n background: \u003C\u003Ccolour page-background>>;\\n display: flex;\\n justify-content: space-between;\\n}\\n\\n.nc-topbar-wrapper {\\n position: fixed;\\n top: 0;\\n left: 0;\\n right: 0;\\n /* The z-index needs to be above the z-index used in tiddlers in zoomin view */\\n z-index: 501;\\n}\\n\\n.nc-bar.nc-topbar {\\n top: 0;\\n background: \u003C\u003Ccolour page-background>>ee;\\n max-width: calc({{$:/themes/nico/notebook/metrics/story-width}} + 40px);\\n padding: 10px 20px;\\n margin: 0 auto;\\n}\\n\\n.nc-bar.nc-bottombar {\\n position: fixed;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n /* The z-index needs to be above the z-index used in tiddlers in zoomin view */\\n z-index: 501;\\n}\\n\\n.nc-bar .left svg {\\n fill: \u003C\u003Ccolour sidebar-controls-foreground>>;\\n}\\n\\n.nc-bar input[type=\\\"search\\\"] {\\n width: 200px;\\n padding: .6em 1em;\\n margin-top: -.2em;\\n background: \u003C\u003Ccolour sidebar-button-foreground>>44;\\n color: \u003C\u003Ccolour foreground>>cc;\\n transition: all ease-in .2s;\\n border: 1px solid transparent;\\n outline: 0;\\n}\\n\\n.nc-bar input[type=\\\"search\\\"]:focus {\\n width: 300px;\\n background: \u003C\u003Ccolour tiddler-background>>;\\n color: \u003C\u003Ccolour foreground>>;\\n border: 1px solid \u003C\u003Ccolour primary>>;\\n box-shadow: 0 0 .2rem 0 \u003C\u003Ccolour primary>>;\\n}\\n\\ninput[type=\\\"search\\\"]::-webkit-search-cancel-button {\\n -webkit-appearance: auto;\\n}\\n\\n.nc-bar .tc-block-dropdown.tc-search-drop-down {\\n margin-left: 0;\\n width: 400px;\\n border: 0;\\n box-shadow: 0 0 6px 0 rgba(0,0,0,.2);\\n border-radius: 6px;\\n padding: 20px 0;\\n}\\n\\n.nc-bar p {\\n margin: 0;\\n}\\n\\n.nc-bar .tc-page-controls {\\n margin-top: 0;\\n}\\n\\n.nc-bar .tc-page-controls button {\\n margin-right: .8em;\\n}\\n\\n.nc-bar .tc-page-controls button .tc-btn-text {\\n font-size: 14px;\\n}\\n\\n.nc-bar .tc-block-dropdown {\\n max-height: 70vh;\\n overflow: auto;\\n}\\n\\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .nc-topbar {\\n display: none;\\n }\\n\\n .tc-story-river {\\n padding: 0 !important;\\n margin-top: 0 !important;\\n margin-bottom: 60px !important;\\n }\\n\\n div.tc-tiddler-frame {\\n margin: 0;\\n box-shadow: none;\\n border-radius: 0;\\n border-top: 0;\\n }\\n}\\n\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .nc-bottombar {\\n display: none;\\n }\\n}\\n\\n@media(max-width: 1100px) {\\n .nc-bar input[type=\\\"search\\\"] {\\n width: 200px;\\n }\\n}\\n\\n/* Sidebar */\\n\\n@keyframes sidebar-appear {\\n 0% {\\n left: -{{$:/themes/nico/notebook/metrics/sidebar-width}};\\n }\\n 100% {\\n left: 0;\\n }\\n}\\n\\n\u003C\u003Cif-sidebar \\\"\\\"\\\"\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .nc-sidebar {\\n animation: sidebar-appear .14s;\\n padding-top: 10px;\\n }\\n}\\n\\\"\\\"\\\">>\\n\\n.nc-sidebar {\\n background: \u003C\u003Ccolour tiddler-background>>;\\n border-right: 1px solid \u003C\u003Ccolour tiddler-border>>;\\n width: {{$:/themes/nico/notebook/metrics/sidebar-width}};\\n overflow-y: auto;\\n overflow-x: hidden;\\n z-index: 100;\\n}\\n\\n.nc-sidebar .segment {\\n border-bottom: 1px solid rgba(0,0,0,.1);\\n}\\n\\n.nc-sidebar ol {\\n margin: 0;\\n padding: 0;\\n list-style: none;\\n line-height: 1.8em;\\n}\\n\\n.nc-sidebar ol ol {\\n padding-left: 18px;\\n}\\n\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .mobile-only {\\n display: none;\\n }\\n}\\n\\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .desktop-only {\\n display: none;\\n }\\n}\\n\\n.nc-sidebar h1.tc-site-title {\\n margin: 0;\\n}\\n\\n.nc-sidebar p {\\n margin: 6px 0;\\n}\\n\\n.nc-sidebar .tc-site-subtitle {\\n color: \u003C\u003Ccolour site-title-foreground>>;\\n}\\n\\n.nc-sidebar .section .label {\\n padding: 2px 0;\\n color: \u003C\u003Ccolour site-title-foreground>>;\\n fill: \u003C\u003Ccolour site-title-foreground>>;\\n font-weight: bold;\\n line-height: 1.6em;\\n display: block;\\n width: 100%;\\n text-align: left;\\n padding: 8px 15px;\\n border-radius: 0;\\n}\\n\\n.nc-sidebar .section:not(.open) .label:hover {\\n background: rgba(0,0,0,.06);\\n}\\n\\n.nc-sidebar .section.open .label {\\n color: \u003C\u003Ccolour tiddler-background>>;\\n fill: \u003C\u003Ccolour tiddler-background>>;\\n background: \u003C\u003Ccolour primary>>;\\n border-bottom: 1px solid rgba(0,0,0,.1);\\n}\\n\\n.nc-sidebar .section .label .caret {\\n display: inline-block;\\n width: 15px;\\n float: right;\\n}\\n\\n.nc-sidebar .content {\\n padding: 6px 15px;\\n font-size: 1em;\\n}\\n\\n.nc-sidebar .tc-tiddlylink {\\n color: \u003C\u003Ccolour primary>>;\\n}\\n\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .nc-sidebar {\\n position: fixed;\\n left: 0;\\n top: 0;\\n bottom: 0;\\n }\\n}\\n\\n\u003C\u003Cif-sidebar \\\"\\\"\\\"\\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n @keyframes sidebar-slide {\\n 0% {\\n left: -100vw;\\n }\\n 100% {\\n left: 0;\\n }\\n }\\n .nc-sidebar {\\n overflow: auto;\\n position: fixed;\\n width: 100%;\\n left: 0;\\n top: 0;\\n bottom: 48px;\\n z-index: 3000;\\n animation: sidebar-slide ease-in .2s;\\n animation-fill-mode: forwards;\\n }\\n}\\n\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .tc-page-container {\\n margin-left: {{$:/themes/nico/notebook/metrics/sidebar-width}} !important;\\n }\\n\\n .nc-topbar-wrapper {\\n left: {{$:/themes/nico/notebook/metrics/sidebar-width}};\\n }\\n}\\n\\\"\\\"\\\">>\\n\\n/* Animate the hamburger button */\\n\\n@keyframes menu-bars-1 {\\n 0% {}\\n 100% {\\n transform: rotate(-45deg) translateY(-10px) translateX(-6px);\\n fill: \u003C\u003Ccolour foreground>>;\\n }\\n}\\n\\n@keyframes menu-bars-2 {\\n 0% {}\\n 100% { opacity: 0; }\\n}\\n\\n@keyframes menu-bars-3 {\\n 0% {}\\n 100% {\\n transform: rotate(45deg) translateY(6px) translateX(2px);\\n fill: \u003C\u003Ccolour foreground>>;\\n }\\n}\\n\\n.sidebar-toggle {\\n /* position: fixed; */\\n /* top: 6px; */\\n /* left: 6px; */\\n /* z-index: 600; */\\n /* padding: 4px; */\\n /* border-radius: 8px; */\\n margin-right: 10px;\\n transition: all ease-in-out .2s;\\n fill: \u003C\u003Ccolour sidebar-controls-foreground>>;\\n}\\n\\n.sidebar-toggle:hover,\\n.sidebar-toggle.open {\\n fill: \u003C\u003Ccolour sidebar-controls-foreground-hover>>;\\n}\\n\\n/* @media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) { */\\n/* .sidebar-toggle { */\\n/* top: auto; */\\n/* bottom: 10px; */\\n/* left: 10px; */\\n/* } */\\n/* } */\\n\\n.sidebar-toggle .bars .bar {\\n transform: rotate(0) translateY(0) translateX(0);\\n opacity: 1;\\n transform-origin: 20px 10px;\\n transition: transform 0.4s ease-in-out, opacity 0.2s ease-in-out, fill .4s ease-in-out;\\n}\\n\\n.sidebar-toggle .bars .bar:nth-of-type(3) {\\n transform-origin: 20px 20px;\\n}\\n\\n.sidebar-toggle.open .bars .bar:nth-of-type(1) {\\n animation: menu-bars-1 .6s;\\n animation-fill-mode: forwards;\\n}\\n.sidebar-toggle.open .bars .bar:nth-of-type(2) {\\n animation: menu-bars-2 .6s;\\n animation-fill-mode: forwards;\\n}\\n.sidebar-toggle.open .bars .bar:nth-of-type(3) {\\n animation: menu-bars-3 .6s;\\n animation-fill-mode: forwards;\\n}\\n\\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n div.tc-tiddler-frame {\\n padding: 14px;\\n }\\n}\\n\\n/* Inputs */\\n\\ninput, textarea {\\n transition: border .14s ease-in-out;\\n background: \u003C\u003Ccolour tiddler-editor-background>>;\\n border: 1px solid \u003C\u003Ccolour tiddler-editor-border>>;\\n padding: .5em;\\n border-radius: 4px;\\n}\\n\\ninput:focus, textarea:focus {\\n box-shadow: 0 0 0.2rem 0 \u003C\u003Ccolour primary>>;\\n outline: 0;\\n border-color: \u003C\u003Ccolour primary>>;\\n}\\n\\nbutton {\\n border-radius: 1.5em;\\n border: 1px solid #ccc;\\n background: \u003C\u003Ccolour tiddler-background>>;\\n padding: .3em 1em;\\n cursor: pointer;\\n transition: box-shadow ease-in .1s;\\n color: \u003C\u003Ccolor foreground>>;\\n}\\n\\nbutton:focus, button:active {\\n outline: 0 none;\\n}\\n\\nbutton.tc-btn-invisible {\\n border-radius: 0;\\n}\\n\\n.tc-editor-toolbar button,\\n.tc-editor-toolbar button.tc-btn-invisible {\\n border-radius: 3px;\\n background: \u003C\u003Ccolour tiddler-editor-background>>;\\n color: \u003C\u003Ccolour foreground>>;\\n fill: \u003C\u003Ccolour foreground>>;\\n border: 1px solid \u003C\u003Ccolour tiddler-editor-border>>;\\n}\\n\\n.tc-editor-toolbar button:hover,\\n.tc-editor-toolbar button:active {\\n border-color: \u003C\u003Ccolour primary>>;\\n background: \u003C\u003Ccolour primary>>;\\n color: \u003C\u003Ccolour background>>;\\n fill: \u003C\u003Ccolour background>>;\\n}\\n\\n.tc-tiddler-frame input.tc-edit-texteditor,\\n.tc-tiddler-frame textarea.tc-edit-texteditor,\\n.tc-tiddler-frame iframe.tc-edit-texteditor {\\n transition: border .14s ease-in-out;\\n border: 1px solid \u003C\u003Ccolour tiddler-editor-border>>;\\n background: \u003C\u003Ccolour tiddler-editor-background>>;\\n padding: 4px;\\n border-radius: 4px;\\n}\\n\\n.tc-tiddler-frame input.tc-edit-texteditor:focus,\\n.tc-tiddler-frame textarea.tc-edit-texteditor:focus,\\n.tc-tiddler-frame iframe.tc-edit-texteditor:focus {\\n box-shadow: 0 0 0.2rem 0 \u003C\u003Ccolour primary>>;\\n outline: 0;\\n border-color: \u003C\u003Ccolour primary>>;\\n}\\n\\n.tc-tiddler-controls .tc-btn-text {\\n font-size: 16px;\\n}\\n\\n\u003C\u003Cif-reveal-tiddler-controls-on-hover \\\"\\\"\\\"\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .tc-tiddler-frame .tc-tiddler-controls svg {\\n opacity: 0;\\n transition: all .2s ease-in;\\n }\\n\\n .tc-tiddler-controls svg.tc-image-close-button,\\n .tc-tiddler-controls .py-toggle-todo-button svg,\\n .tc-tiddler-controls svg.tc-image-done-button,\\n .tc-tiddler-frame .tc-tiddler-controls:hover svg {\\n opacity: 1;\\n }\\n\\n .tc-tiddler-controls .py-toggle-todo-button .done svg {\\n fill: #2da562;\\n }\\n}\\n\\\"\\\"\\\">>\\n\\nbutton.tc-tag-label, span.tc-tag-label {\\n padding: 0.3em 1em !important;\\n}\\n\\n/* Fonts */\\n\\nhtml, body {\\n font-family: {{$:/themes/nico/notebook/settings/fontfamily}};\\n}\\n\\n.tc-tiddler-frame input.tc-edit-texteditor,\\n.tc-tiddler-frame textarea.tc-edit-texteditor,\\n.tc-tiddler-frame iframe.tc-edit-texteditor {\\n font-family: {{$:/themes/nico/notebook/settings/editorfontfamily}};\\n}\\n\\npre, code {\\n font-family: {{$:/themes/nico/notebook/settings/codefontfamily}};\\n}\\n\\n.tc-titlebar, .tc-site-title {\\n font-size: 28px !important;\\n line-height: 34px !important;\\n font-weight: 600 !important;\\n letter-spacing: -0.5px !important;\\n}\\n\\nh1, h2, h3, h4, h5, h6 {\\n font-weight: 600;\\n}\\n\\n.tc-tiddler-body h1,\\n.tc-tiddler-body h2,\\n.tc-tiddler-preview-preview h1,\\n.tc-tiddler-preview-preview h2 {\\n font-weight: bold;\\n}\\n\\ndiv.tc-tiddler-frame .tc-tiddler-body {\\n font-size: {{$:/themes/nico/notebook/metrics/bodyfontsize}};\\n line-height: {{$:/themes/nico/notebook/metrics/bodylineheight}};\\n}\\n\\n/* Tabs */\\n\\ndiv.tc-tab-buttons {\\n margin-bottom: -4px;\\n}\\n\\ndiv.tc-tab-buttons button {\\n font-weight: bold;\\n font-size: 1.2em;\\n line-height: 1em;\\n padding: .6em .8em .4em .8em;\\n border: 0;\\n border-radius: 0;\\n background: transparent;\\n cursor: pointer;\\n transition: background ease-in .2s;\\n}\\n\\ndiv.tc-tab-buttons button:hover {\\n background: rgba(0,0,0,.03);\\n}\\n\\ndiv.tc-tab-buttons button.tc-tab-selected {\\n border: 0;\\n background: transparent;\\n border-bottom: 4px solid \u003C\u003Ccolour primary>>;\\n}\\n\\n/* Dropdowns */\\n\\n@keyframes pop {\\n 0% {\\n transform: scale(0.8);\\n opacity: 0;\\n }\\n\\n 80% {\\n transform: scale(1.03);\\n opacity: 1;\\n }\\n\\n 100% {\\n transform: scale(1);\\n opacity: 1;\\n }\\n}\\n\\n.tc-drop-down {\\n box-shadow: 0 0 10px rgba(0,0,0,.2);\\n border-radius: 6px;\\n padding: 10px 0 !important;\\n animation: pop .15s ease-in forwards;\\n}\\n\\n.tc-drop-down a, .tc-drop-down button {\\n padding: 3px 15px !important;\\n}\\n\\n.tc-search-results {\\n line-height: 2em;\\n}\\n\\n.tc-search-results em {\\n font-weight: bold;\\n font-style: normal;\\n}\\n\\n/* Draft list */\\n\\n.tc-drafts-list {\\n font-size: .9em;\\n left: auto;\\n right: 0;\\n}\\n\\n.tc-drafts-list a {\\n padding: 6px 12px;\\n font-weight: bold;\\n border-top-left-radius: 6px;\\n border-top-right-radius: 6px;\\n display: inline-block;\\n}\\n\\n.nc-refs {\\n color: #888;\\n font-size: .9em;\\n}\\n\\n.nc-refs h4 {\\n margin-bottom: 4px;\\n}\\n\\n.nc-post-created {\\n color: #acacac;\\n font-size: .8em;\\n}\\n\"\n },\n \"$:/themes/nico/notebook/changelog\": {\n \"title\": \"$:/themes/nico/notebook/changelog\",\n \"caption\": \"ChangeLog\",\n \"created\": \"20201217180707912\",\n \"modified\": \"20210202214001915\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"! 1.4.1\\n\\n!! Fixes\\n\\n* Fix the transclusion mode of sidebar sections\\n* Fix section title rendering for tiddlers without a caption field\\n* Fix the colour of links in the sidebar when using Notebook palettes with Vanilla\\n\\n! 1.4.0\\n\\n!! Features\\n\\n* New redesigned topbar layout\\n* Add a configuration setting for the story width\\n* Add support for keyboard navigation in the search dropdown\\n\\n! 1.3.6\\n\\n!! Improvements\\n\\n* Improve the style of tabs\\n* New animation for drop-downs\\n* Use a lighter page background colour in the beige palette\\n\\n!! Fixes\\n\\n* Fix the default ctrl+shift+F shortcut for focusing the search input\\n\\n! 1.3.5\\n\\n!! Features\\n\\n* Add an option to reveal tiddler controls on mouseover\\n\\n! 1.3.4\\n\\n!! Improvements\\n\\n* Add a keyboard shortcut (alt+shift+s) to toggle Notebook sidebar\\n* Add missing colours to tiddler editor fields in the dark palette\\n\\n!! Fixes\\n\\n* Fix the size of toolbar button labels when the $:/config/Toolbar/Text is set to yes\\n\\n! 1.3.3\\n\\n!! Improvements\\n\\n* Make the sidebar more generic by using the default sidebar sections\\n\\n! 1.3.2\\n\\n!! Improvements\\n\\n* Add colours for messages in the dark palette\\n* Add colours for notification in the dark palette\\n* Set colours for messages in the beige palette\\n\\n! 1.3.1\\n\\n!! Features\\n\\n* New font family settings distinct from the Vanilla theme\\n\\n!! Improvements\\n\\n* Use a slightly lighter colour as the search input background\\n* Improve contrast of sidebar buttons in the dark palette\\n\\n!! Fixes\\n\\n* Fix tiddler control button colours in all three palettes\\n* Fix tab colours in palette-dark\\n\\n! 1.3.0\\n\\n!! Improvements\\n\\n* New dark colour palette\\n* Use a darker color for tiddler subtitles\\n* Add back the WebKit search cancel button in search inputs\\n\\n!! Fixes\\n\\n* Fix the z-index of the topbar for the zoomin story view\\n* Fix the font weight of tiddler titles in edit mode\\n\\n! 1.2.0\\n\\n!! Improvements\\n\\n* Better support for dark colour palettes\\n\\n!! Fixes\\n\\n* Fix rendering of overflowing/wrapping text in the sidebar\\n\\n! 1.1.0\\n\\n!! Features\\n\\n* New theme tweaks tab dedicated to Notebook in the control panel\\n* Inputs in the edit template are now styled consistently with other inputs\\n\\n!! Fixes\\n\\n* Fixes the position of sticky tiddler titles when the option is turned on\\n\"\n },\n \"$:/config/ShortcutInfo/notebook-focus-search\": {\n \"title\": \"$:/config/ShortcutInfo/notebook-focus-search\",\n \"text\": \"Focus on the topbar search field\"\n },\n \"$:/config/shortcuts/notebook-focus-search\": {\n \"title\": \"$:/config/shortcuts/notebook-focus-search\",\n \"text\": \"ctrl+shift+F\"\n },\n \"$:/config/Search/AutoFocus\": {\n \"title\": \"$:/config/Search/AutoFocus\",\n \"text\": \"false\"\n },\n \"$:/config/shortcuts/sidebar-search\": {\n \"title\": \"$:/config/shortcuts/sidebar-search\",\n \"text\": \"\"\n },\n \"$:/themes/nico/notebook/images/bars\": {\n \"title\": \"$:/themes/nico/notebook/images/bars\",\n \"created\": \"20200428212322206\",\n \"modified\": \"20201210210231235\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Csvg class=\\\"bars\\\" height=\\\"21pt\\\" viewBox=\\\"0 0 42 42\\\" enable-background=\\\"new 0 0 32 22.5\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n \u003Cg class=\\\"svg-menu-toggle\\\" sketch:type=\\\"MSLayerGroup\\\">\\n \u003Crect class=\\\"bar\\\" x=\\\"8\\\" y=\\\"28\\\" width=\\\"26\\\" height=\\\"4\\\">\u003C/rect>\\n \u003Crect class=\\\"bar\\\" x=\\\"8\\\" y=\\\"19\\\" width=\\\"26\\\" height=\\\"4\\\">\u003C/rect>\\n \u003Crect class=\\\"bar\\\" x=\\\"8\\\" y=\\\"10\\\" width=\\\"26\\\" height=\\\"4\\\">\u003C/rect>\\n \u003C/g>\\n\u003C/svg>\\n\"\n },\n \"$:/themes/nico/notebook/images/caret-down\": {\n \"title\": \"$:/themes/nico/notebook/images/caret-down\",\n \"created\": \"20200429194348688\",\n \"modified\": \"20201210210230919\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Csvg width=\\\"6pt\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\">\u003Cpath d=\\\"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\\\"/>\u003C/svg>\\n\"\n },\n \"$:/themes/nico/notebook/images/caret-right\": {\n \"title\": \"$:/themes/nico/notebook/images/caret-right\",\n \"created\": \"20200429194305719\",\n \"modified\": \"20201210210230909\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Csvg width=\\\"4pt\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 192 512\\\">\u003Cpath d=\\\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\\\"/>\u003C/svg>\\n\"\n },\n \"$:/themes/nico/notebook/images/color-switch\": {\n \"title\": \"$:/themes/nico/notebook/images/color-switch\",\n \"created\": \"20201210170859810\",\n \"creator\": \"nico\",\n \"modified\": \"20201210205606403\",\n \"modifier\": \"nico\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Csvg width=\\\"20px\\\" height=\\\"20px\\\" viewBox=\\\"0 0 16 16\\\" class=\\\"bi bi-circle-half\\\" fill=\\\"currentColor\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n \u003Cpath fill-rule=\\\"evenodd\\\" d=\\\"M8 15V1a7 7 0 1 1 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z\\\"/>\\n\u003C/svg\\n\"\n },\n \"$:/themes/nico/notebook/metrics/bodyfontsize\": {\n \"title\": \"$:/themes/nico/notebook/metrics/bodyfontsize\",\n \"created\": \"20200428203454207\",\n \"modified\": \"20201210205606363\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"15px\\n\"\n },\n \"$:/themes/nico/notebook/metrics/bodylineheight\": {\n \"title\": \"$:/themes/nico/notebook/metrics/bodylineheight\",\n \"created\": \"20200428203454207\",\n \"modified\": \"20201210205606363\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"22px\"\n },\n \"$:/themes/nico/notebook/metrics/sidebar-width\": {\n \"title\": \"$:/themes/nico/notebook/metrics/sidebar-width\",\n \"created\": \"20200429144554294\",\n \"modified\": \"20201210210231246\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"350px\\n\"\n },\n \"$:/themes/nico/notebook/metrics/story-width\": {\n \"title\": \"$:/themes/nico/notebook/metrics/story-width\",\n \"created\": \"20210123210054185\",\n \"modified\": \"20210123211911688\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"800px\\n\"\n },\n \"$:/themes/nico/notebook/metrics/topbar-height\": {\n \"title\": \"$:/themes/nico/notebook/metrics/topbar-height\",\n \"created\": \"20200428203454207\",\n \"modified\": \"20201210205606363\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"52px\\n\"\n },\n \"$:/themes/nico/notebook/options/stickytitles\": {\n \"title\": \"$:/themes/nico/notebook/options/stickytitles\",\n \"text\": \"no\"\n },\n \"$:/themes/nico/notebook/options/codewrapping\": {\n \"title\": \"$:/themes/nico/notebook/options/codewrapping\",\n \"text\": \"pre-wrap\"\n },\n \"$:/themes/nico/notebook/options/reveal-tiddler-controls-on-hover\": {\n \"title\": \"$:/themes/nico/notebook/options/reveal-tiddler-controls-on-hover\",\n \"text\": \"no\"\n },\n \"$:/core/ui/PageTemplate/sidebar\": {\n \"title\": \"$:/core/ui/PageTemplate/sidebar\",\n \"created\": \"20200430072116835\",\n \"modified\": \"20201217174129501\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\whitespace trim\\n\\\\define config-title()\\n$:/config/SideBarSegments/Visibility/$(listItem)$\\n\\\\end\\n\\nOverwritten by $:/themes/nico/notebook so that the default sidebar does not get rendered.\\n\"\n },\n \"$:/themes/tiddlywiki/vanilla/themetweaks\": {\n \"title\": \"$:/themes/tiddlywiki/vanilla/themetweaks\",\n \"caption\": \"{{$:/language/ThemeTweaks/ThemeTweaks}}\",\n \"created\": \"20201217163834291\",\n \"modified\": \"20201217163914434\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"Overwritten by $:/themes/nico/notebook so that the Vanilla theme tweaks do not appear in the control panel. \"\n },\n \"$:/themes/nico/notebook/palettes/palette-beige\": {\n \"title\": \"$:/themes/nico/notebook/palettes/palette-beige\",\n \"text\": \"alert-background: #ffe476\\nalert-border: #b99e2f\\nalert-highlight: #881122\\nalert-muted-foreground: #b99e2f\\nbackground: #ffffff\\nblockquote-bar: \u003C\u003Ccolour muted-foreground>>\\nbutton-background:\\nbutton-foreground:\\nbutton-border:\\ncode-background: #f7f7f9\\ncode-border: #e1e1e8\\ncode-foreground: #dd1144\\ndirty-indicator: #c63636\\ndownload-background: #66cccc\\ndownload-foreground: \u003C\u003Ccolour background>>\\ndragger-background: \u003C\u003Ccolour foreground>>\\ndragger-foreground: \u003C\u003Ccolour background>>\\ndropdown-background: \u003C\u003Ccolour background>>\\ndropdown-border: #ddd\\ndropdown-tab-background-selected: #fff\\ndropdown-tab-background: #ececec\\ndropzone-background: #da8548\\nexternal-link-background-hover: inherit\\nexternal-link-background-visited: inherit\\nexternal-link-background: inherit\\nexternal-link-foreground-hover: inherit\\nexternal-link-foreground-visited: #0000aa\\nexternal-link-foreground: #0000ee\\nforeground: #3F3B3B\\nmessage-background: #e6f5e8\\nmessage-border: #2b5532\\nmessage-foreground: #2b5532\\nmodal-backdrop: \u003C\u003Ccolour foreground>>\\nmodal-background: \u003C\u003Ccolour background>>\\nmodal-border: #999999\\nmodal-footer-background: #f5f5f5\\nmodal-footer-border: #dddddd\\nmodal-header-border: #eeeeee\\nmuted-foreground: #999999\\nnotification-background: #ffffdd\\nnotification-border: #999999\\npage-background: #f5f5ee\\npre-background: #f6f6f6\\npre-border: #cccccc\\nprimary: #7f4bca\\nselect-tag-background:\\nselect-tag-foreground:\\nsidebar-button-foreground: #a6a69c\\nsidebar-controls-foreground-hover: #000000\\nsidebar-controls-foreground: \u003C\u003Ccolour sidebar-button-foreground>>\\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\\nsidebar-foreground: #acacac\\nsidebar-muted-foreground-hover: #444444\\nsidebar-muted-foreground: #c0c0c0\\nsidebar-tab-background-selected: #ffffff\\nsidebar-tab-background: \u003C\u003Ccolour tab-background>>\\nsidebar-tab-border-selected: \u003C\u003Ccolour tab-border-selected>>\\nsidebar-tab-border: \u003C\u003Ccolour tab-border>>\\nsidebar-tab-divider: \u003C\u003Ccolour tab-divider>>\\nsidebar-tab-foreground-selected: \u003C\u003Ccolour tab-foreground-selected>>\\nsidebar-tab-foreground: \u003C\u003Ccolour tab-foreground>>\\nsidebar-tiddler-link-foreground-hover: \u003C\u003Ccolour primary>>\\nsidebar-tiddler-link-foreground: \u003C\u003Ccolour tab-foreground>>\\nsite-title-foreground: #353748\\nstatic-alert-foreground: #aaaaaa\\ntab-background-selected: #ffffff\\ntab-background: #eeeeee\\ntab-border-selected: #cccccc\\ntab-border: #cccccc\\ntab-divider: #d8d8d8\\ntab-foreground-selected: \u003C\u003Ccolour foreground>>\\ntab-foreground: #888888\\ntable-border: #dddddd\\ntable-footer-background: #a8a8a8\\ntable-header-background: #f0f0f0\\ntag-background: #ffeedd\\ntag-foreground: #000\\ntiddler-background: \u003C\u003Ccolour background>>\\ntiddler-border: #dbdbc7;\\ntiddler-controls-foreground-hover: #888888;\\ntiddler-controls-foreground-selected: #888888;\\ntiddler-controls-foreground: #cccccc\\ntiddler-editor-background: \u003C\u003Ccolour background>>\\ntiddler-editor-border-image: #ffffff\\ntiddler-editor-border: rgba(0,0,0,.2)\\ntiddler-editor-fields-even: #e0e8e0\\ntiddler-editor-fields-odd: #f0f4f0\\ntiddler-info-background: #f8f8f8\\ntiddler-info-border: #dddddd\\ntiddler-info-tab-background: #f8f8f8\\ntiddler-link-background: \u003C\u003Ccolour background>>\\ntiddler-link-foreground: \u003C\u003Ccolour primary>>\\ntiddler-subtitle-foreground: #aaaaaa\\ntiddler-title-foreground: #333\\ntoolbar-new-button:\\ntoolbar-options-button:\\ntoolbar-save-button:\\ntoolbar-info-button:\\ntoolbar-edit-button:\\ntoolbar-close-button:\\ntoolbar-delete-button:\\ntoolbar-cancel-button:\\ntoolbar-done-button:\\nuntagged-background: #999999\\nvery-muted-foreground: #888888\\n\",\n \"type\": \"application/x-tiddler-dictionary\",\n \"description\": \"A beige colour palette for Notebook\",\n \"name\": \"Notebook Beige\",\n \"tags\": \"$:/tags/Palette $:/tags/notebook/Palette\"\n },\n \"$:/themes/nico/notebook/palettes/palette-dark\": {\n \"title\": \"$:/themes/nico/notebook/palettes/palette-dark\",\n \"text\": \"alert-background: #643b43\\nalert-border: #3f181f\\nalert-highlight: #881122\\nalert-muted-foreground: #bc8b94\\nbackground: #383e49\\nblockquote-bar: \u003C\u003Ccolour muted-foreground>>\\nbutton-background:\\nbutton-border:\\nbutton-foreground:\\ncode-background: #2c323b\\ncode-border: #111\\ncode-foreground: #dd1144\\ndirty-indicator: #c63636\\ndownload-background: #98be65\\ndownload-foreground: \u003C\u003Ccolour background>>\\ndragger-background: \u003C\u003Ccolour foreground>>\\ndragger-foreground: \u003C\u003Ccolour background>>\\ndropdown-background: \u003C\u003Ccolour background>>\\ndropdown-border: #111\\ndropdown-tab-background-selected: #fff\\ndropdown-tab-background: #ececec\\ndropzone-background: #da8548\\nexternal-link-background-hover: inherit\\nexternal-link-background-visited: inherit\\nexternal-link-background: inherit\\nexternal-link-foreground-hover: inherit\\nexternal-link-foreground-visited: #61afef\\nexternal-link-foreground: #c678dd\\nforeground: #c8ced8\\nmessage-background: #2c323e\\nmessage-border: #111\\nmessage-foreground: #d5e2f1\\nmodal-backdrop: \u003C\u003Ccolour foreground>>\\nmodal-background: \u003C\u003Ccolour background>>\\nmodal-border: #999999\\nmodal-footer-background: #f5f5f5\\nmodal-footer-border: #dddddd\\nmodal-header-border: #eeeeee\\nmuted-foreground: #999999\\nnotification-background: #3a5e39\\nnotification-border: #192c19\\npage-background: #262b33\\npre-background: \u003C\u003Ccolour page-background>>\\npre-border: \u003C\u003Ccolour tiddler-border>>\\nprimary: #bf93ff\\nselect-tag-background:\\nselect-tag-foreground:\\nsidebar-button-foreground: #5e646f\\nsidebar-controls-foreground-hover: #cad2e5\\nsidebar-controls-foreground: \u003C\u003Ccolour sidebar-button-foreground>>\\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\\nsidebar-foreground: #cad2e5\\nsidebar-muted-foreground-hover: #444444\\nsidebar-muted-foreground: #c0c0c0\\nsidebar-tab-background-selected: \u003C\u003Ccolour tab-background-selected>>\\nsidebar-tab-background: \u003C\u003Ccolour tab-background>>\\nsidebar-tab-border-selected: \u003C\u003Ccolour tab-border-selected>>\\nsidebar-tab-border: \u003C\u003Ccolour tab-border>>\\nsidebar-tab-divider: \u003C\u003Ccolour tab-divider>>\\nsidebar-tab-foreground-selected: \u003C\u003Ccolour tab-foreground-selected>>\\nsidebar-tab-foreground: \u003C\u003Ccolour tab-foreground>>\\nsidebar-tiddler-link-foreground-hover: \u003C\u003Ccolour primary>>\\nsidebar-tiddler-link-foreground: \u003C\u003Ccolour tab-foreground>>\\nsite-title-foreground: \u003C\u003Ccolour foreground>>\\nstatic-alert-foreground: #aaaaaa\\ntab-background-selected: \u003C\u003Ccolour background>>\\ntab-background: \u003C\u003Ccolour page-background>>\\ntab-border-selected: \u003C\u003Ccolour foreground>>\\ntab-border: #cad2e5\\ntab-divider: #cad2e5\\ntab-foreground-selected: #ecf2ff\\ntab-foreground: #cad2e5\\ntable-border: #aaaaaa\\ntable-footer-background: #a8a8a8\\ntable-header-background: #262b33\\ntag-background: #fcb671\\ntag-foreground: #000\\ntiddler-background: \u003C\u003Ccolour background>>\\ntiddler-border: #111\\ntiddler-controls-foreground-hover: #cad2e5\\ntiddler-controls-foreground-selected: #cad2e5\\ntiddler-controls-foreground: #5e646f\\ntiddler-editor-background: \u003C\u003Ccolour background>>\\ntiddler-editor-border-image: #ffffff\\ntiddler-editor-border: rgba(255, 255, 255, 0.3)\\ntiddler-editor-fields-even: \u003C\u003Ccolour background>>\\ntiddler-editor-fields-odd: #2c323b\\ntiddler-info-background: #f8f8f8\\ntiddler-info-border: #dddddd\\ntiddler-info-tab-background: #f8f8f8\\ntiddler-link-background: \u003C\u003Ccolour background>>\\ntiddler-link-foreground: \u003C\u003Ccolour primary>>\\ntiddler-subtitle-foreground: #aaaaaa\\ntiddler-title-foreground: \u003C\u003Ccolour foreground>>\\ntoolbar-cancel-button:\\ntoolbar-close-button:\\ntoolbar-delete-button:\\ntoolbar-done-button:\\ntoolbar-edit-button:\\ntoolbar-info-button:\\ntoolbar-new-button:\\ntoolbar-options-button:\\ntoolbar-save-button:\\nuntagged-background: #999999\\nvery-muted-foreground: #888888\\n\",\n \"type\": \"application/x-tiddler-dictionary\",\n \"description\": \"A dark colour palette for Notebook\",\n \"name\": \"Notebook Dark\",\n \"tags\": \"$:/tags/Palette $:/tags/notebook/Palette\"\n },\n \"$:/themes/nico/notebook/palettes/palette-grey\": {\n \"title\": \"$:/themes/nico/notebook/palettes/palette-grey\",\n \"text\": \"alert-background: #ffe476\\nalert-border: #b99e2f\\nalert-highlight: #881122\\nalert-muted-foreground: #b99e2f\\nbackground: #ffffff\\nblockquote-bar: \u003C\u003Ccolour muted-foreground>>\\nbutton-background:\\nbutton-foreground:\\nbutton-border:\\ncode-background: #f7f7f9\\ncode-border: #e1e1e8\\ncode-foreground: #dd1144\\ndirty-indicator: #c63636\\ndownload-background: #66cccc\\ndownload-foreground: \u003C\u003Ccolour background>>\\ndragger-background: \u003C\u003Ccolour foreground>>\\ndragger-foreground: \u003C\u003Ccolour background>>\\ndropdown-background: \u003C\u003Ccolour background>>\\ndropdown-border: #ddd\\ndropdown-tab-background-selected: #fff\\ndropdown-tab-background: #ececec\\ndropzone-background: #da8548\\nexternal-link-background-hover: inherit\\nexternal-link-background-visited: inherit\\nexternal-link-background: inherit\\nexternal-link-foreground-hover: inherit\\nexternal-link-foreground-visited: #0000aa\\nexternal-link-foreground: #0000ee\\nforeground: #283c46\\nmessage-background: #ecf2ff\\nmessage-border: #cfd6e6\\nmessage-foreground: #547599\\nmodal-backdrop: \u003C\u003Ccolour foreground>>\\nmodal-background: \u003C\u003Ccolour background>>\\nmodal-border: #999999\\nmodal-footer-background: #f5f5f5\\nmodal-footer-border: #dddddd\\nmodal-header-border: #eeeeee\\nmuted-foreground: #999999\\nnotification-background: #ffffdd\\nnotification-border: #999999\\npage-background: #f4f4f4\\npre-background: #f6f6f6\\npre-border: #cccccc\\nprimary: #127edd\\nselect-tag-background:\\nselect-tag-foreground:\\nsidebar-button-foreground: #a6a69c\\nsidebar-controls-foreground-hover: #000000\\nsidebar-controls-foreground: \u003C\u003Ccolour sidebar-button-foreground>>\\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\\nsidebar-foreground: #acacac\\nsidebar-muted-foreground-hover: #444444\\nsidebar-muted-foreground: #c0c0c0\\nsidebar-tab-background-selected: #ffffff\\nsidebar-tab-background: \u003C\u003Ccolour tab-background>>\\nsidebar-tab-border-selected: \u003C\u003Ccolour tab-border-selected>>\\nsidebar-tab-border: \u003C\u003Ccolour tab-border>>\\nsidebar-tab-divider: \u003C\u003Ccolour tab-divider>>\\nsidebar-tab-foreground-selected: \u003C\u003Ccolour tab-foreground-selected>>\\nsidebar-tab-foreground: \u003C\u003Ccolour tab-foreground>>\\nsidebar-tiddler-link-foreground-hover: \u003C\u003Ccolour primary>>\\nsidebar-tiddler-link-foreground: \u003C\u003Ccolour tab-foreground>>\\nsite-title-foreground: #353748\\nstatic-alert-foreground: #aaaaaa\\ntab-background-selected: #ffffff\\ntab-background: #eeeeee\\ntab-border-selected: #cccccc\\ntab-border: #cccccc\\ntab-divider: #d8d8d8\\ntab-foreground-selected: \u003C\u003Ccolour foreground>>\\ntab-foreground: #888888\\ntable-border: #dddddd\\ntable-footer-background: #a8a8a8\\ntable-header-background: #f0f0f0\\ntag-background: #ffeedd\\ntag-foreground: #000\\ntiddler-background: \u003C\u003Ccolour background>>\\ntiddler-border: #ddd\\ntiddler-controls-foreground-hover: #888888;\\ntiddler-controls-foreground-selected: #888888;\\ntiddler-controls-foreground: #cccccc\\ntiddler-editor-background: \u003C\u003Ccolour background>>\\ntiddler-editor-border-image: #ffffff\\ntiddler-editor-border: rgba(0,0,0,.2)\\ntiddler-editor-fields-even: #e0e8e0\\ntiddler-editor-fields-odd: #f0f4f0\\ntiddler-info-background: #f8f8f8\\ntiddler-info-border: #dddddd\\ntiddler-info-tab-background: #f8f8f8\\ntiddler-link-background: \u003C\u003Ccolour background>>\\ntiddler-link-foreground: \u003C\u003Ccolour primary>>\\ntiddler-subtitle-foreground: #aaaaaa\\ntiddler-title-foreground: #333\\ntoolbar-new-button:\\ntoolbar-options-button:\\ntoolbar-save-button:\\ntoolbar-info-button:\\ntoolbar-edit-button:\\ntoolbar-close-button:\\ntoolbar-delete-button:\\ntoolbar-cancel-button:\\ntoolbar-done-button:\\nuntagged-background: #999999\\nvery-muted-foreground: #888888\\n\",\n \"type\": \"application/x-tiddler-dictionary\",\n \"description\": \"A grey color palette for Notebook\",\n \"name\": \"Notebook Grey\",\n \"tags\": \"$:/tags/Palette $:/tags/notebook/Palette\"\n },\n \"$:/themes/nico/notebook/settings/codefontfamily\": {\n \"title\": \"$:/themes/nico/notebook/settings/codefontfamily\",\n \"created\": \"20210101213404232\",\n \"modified\": \"20210101214210227\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\"Fira Mono\\\",\\\"Liberation Mono\\\",Menlo,Courier,monospace\\n\"\n },\n \"$:/themes/nico/notebook/settings/fontfamily\": {\n \"title\": \"$:/themes/nico/notebook/settings/fontfamily\",\n \"created\": \"20210101213404232\",\n \"modified\": \"20210101213411800\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\"Segoe UI\\\",Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\"\\n\"\n },\n \"$:/themes/nico/notebook/shortcuts/notebook-focus-search\": {\n \"title\": \"$:/themes/nico/notebook/shortcuts/notebook-focus-search\",\n \"created\": \"20201210122048919\",\n \"key\": \"((notebook-focus-search))\",\n \"modified\": \"20210115130024907\",\n \"tags\": \"$:/tags/KeyboardShortcut\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$action-sendmessage $message=\\\"tm-focus-selector\\\" $param=\\\".nc-topbar input\\\"/>\\n\"\n },\n \"$:/themes/nico/notebook/shortcuts/toggle-sidebar\": {\n \"title\": \"$:/themes/nico/notebook/shortcuts/toggle-sidebar\",\n \"created\": \"20210115130000707\",\n \"key\": \"((toggle-sidebar))\",\n \"modified\": \"20210115130021883\",\n \"tags\": \"$:/tags/KeyboardShortcut\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$list\\n filter=\\\"[[$:/state/notebook-sidebar]is[missing]] [{$:/state/notebook-sidebar}removeprefix[yes]]\\\"\\n emptyMessage=\\\"\\\"\\\"\u003C$action-setfield $tiddler=\\\"$:/state/notebook-sidebar\\\" text=\\\"yes\\\"/>\\\"\\\"\\\"\\n>\\n \u003C$action-setfield $tiddler=\\\"$:/state/notebook-sidebar\\\" text=\\\"no\\\"/>\\n\u003C/$list>\\n\"\n },\n \"$:/themes/nico/notebook/stickytitles\": {\n \"title\": \"$:/themes/nico/notebook/stickytitles\",\n \"created\": \"20201217172915960\",\n \"modified\": \"20201217180034682\",\n \"tags\": \"$:/tags/Stylesheet\",\n \"text\": \"\u003C$reveal state=\\\"$:/themes/nico/notebook/options/stickytitles\\\" type=\\\"match\\\" text=\\\"yes\\\">\\n\\n.tc-tiddler-title {\\n position: -webkit-sticky;\\n position: -moz-sticky;\\n position: -o-sticky;\\n position: -ms-sticky;\\n position: sticky;\\n top: {{$:/themes/nico/notebook/metrics/topbar-height}};\\n background: \u003C\u003Ccolour tiddler-background>>;\\n z-index: 500;\\n}\\n\\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .tc-tiddler-title {\\n top: 0;\\n }\\n}\\n\\n\u003C$list filter=\\\"[range[100]]\\\">\\n`.tc-story-river .tc-tiddler-frame:nth-child(100n+`\u003C$text text=\u003C\u003CcurrentTiddler>>/>`) {\\nz-index: `\u003C$text text={{{ [[200]subtract\u003CcurrentTiddler>] }}}/>`;\\n}\\n`\\n\u003C/$list>\\n\u003C/$reveal>\\n\"\n },\n \"$:/themes/nico/notebook/tags/Sidebar\": {\n \"title\": \"$:/themes/nico/notebook/tags/Sidebar\",\n \"created\": \"20200429164516951\",\n \"list\": \"$:/themes/nico/notebook/ui/Buttons/menu $:/themes/nico/notebook/ui/Sidebar/Headings $:/themes/nico/notebook/ui/Sidebar/Search $:/themes/nico/notebook/Sidebar/Sections\",\n \"modified\": \"20201210205606504\",\n \"type\": \"text/vnd.tiddlywiki\"\n },\n \"$:/themes/nico/notebook/tags/SidebarSection\": {\n \"title\": \"$:/themes/nico/notebook/tags/SidebarSection\",\n \"created\": \"20200429201017275\",\n \"list\": \"$:/themes/nico/notebook/ui/Sidebar/Open $:/themes/nico/notebook/ui/Sidebar/Recent $:/themes/nico/notebook/ui/Sidebar/Tools $:/themes/nico/notebook/ui/Sidebar/More\",\n \"modified\": \"20201210215658901\",\n \"type\": \"text/vnd.tiddlywiki\"\n },\n \"$:/themes/nico/notebook/ui/Bottombar\": {\n \"title\": \"$:/themes/nico/notebook/ui/Bottombar\",\n \"created\": \"20200429113453340\",\n \"modified\": \"20201210210230886\",\n \"tags\": \"$:/tags/PageTemplate\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$reveal state=\\\"$:/state/notebook-bottombar\\\" type=\\\"match\\\" text=\\\"yes\\\" default=\\\"yes\\\" retain=\\\"yes\\\" animate=\\\"yes\\\">\\n \u003Cdiv class=\\\"nc-bar nc-bottombar\\\">\\n \u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/NotebookTopbar]!has[draft.of]]\\\" variable=\\\"listItem\\\">\\n \u003C$reveal type=\\\"nomatch\\\" state=\u003C\u003Cconfig-title>> text=\\\"hide\\\" tag=\\\"div\\\">\\n \u003C$transclude tiddler=\u003C\u003ClistItem>> mode=\\\"block\\\"/>\\n \u003C/$reveal>\\n \u003C/$list>\\n \u003Cdiv class=\\\"left\\\">\\n {{$:/themes/nico/notebook/ui/Buttons/menu}}\\n \u003C/div>\\n \u003Cdiv class=\\\"right\\\">\\n {{$:/core/ui/SideBarSegments/page-controls}}\\n \u003C/div>\\n \u003C/div>\\n\u003C/$reveal>\\n\\n\"\n },\n \"$:/themes/nico/notebook/ui/Buttons/SwitchPalette\": {\n \"title\": \"$:/themes/nico/notebook/ui/Buttons/SwitchPalette\",\n \"created\": \"20201210171047824\",\n \"description\": \"Toggle between grey/beige colour palette\",\n \"modified\": \"20210118213335643\",\n \"tags\": \"$:/tags/PageControls\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Cspan class=\\\"desktop-only\\\">\\n \u003C$vars\\n palettes=\\\"[all[tiddlers+shadows]tag[$:/tags/notebook/Palette]]\\\"\\n popupTiddler=\u003C\u003Cqualify \\\"$:/state/notebook/palette-dropdown\\\">>\\n >\\n \u003C$button\\n popup=\u003C\u003CpopupTiddler>>\\n tooltip=\\\"Switch colours\\\"\\n aria-label=\\\"Switch colours\\\"\\n class=\u003C\u003Ctv-config-toolbar-class>>\\n >\\n \u003C$list filter=\\\"[\u003Ctv-config-toolbar-icons>match[yes]]\\\">\\n\\t{{$:/themes/nico/notebook/images/color-switch}}\\n \u003C/$list>\\n\\n \u003C$list filter=\\\"[\u003Ctv-config-toolbar-text>match[yes]]\\\">\\n\\t\u003Cspan class=\\\"tc-btn-text\\\">Switch colours\u003C/span>\\n \u003C/$list>\\n\\n \u003C$reveal state=\u003C\u003CpopupTiddler>> type=\\\"popup\\\" position=\\\"belowleft\\\" class=\\\"tc-drop-down\\\">\\n\\t\u003C$list filter=\u003C\u003Cpalettes>>>\\n\\t \u003C$button class=\\\"tc-btn-invisible\\\">\\n\\t {{!!name}}\\n\\t \u003C$action-setfield $tiddler=\\\"$:/palette\\\" text={{!!title}}/>\\n\\t \u003C/$button>\\n\\t\u003C/$list>\\n \u003C/$reveal>\\n\\n \u003C/$button>\\n \u003C/$vars>\\n\u003C/span>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Buttons/menu\": {\n \"title\": \"$:/themes/nico/notebook/ui/Buttons/menu\",\n \"created\": \"20200429115248943\",\n \"modified\": \"20210124211756417\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$reveal state=\\\"$:/state/notebook-sidebar\\\" type=\\\"match\\\" text=\\\"yes\\\" default=\\\"no\\\" retain=\\\"yes\\\" animate=\\\"no\\\">\\n \u003C$button set=\\\"$:/state/notebook-sidebar\\\" setTo=\\\"no\\\" tooltip=\\\"Toggle menu\\\" class=\\\"tc-btn-invisible sidebar-toggle open\\\">\\n {{$:/themes/nico/notebook/images/bars}}\\n \u003C/$button>\\n\u003C/$reveal>\\n\\n\u003C$reveal type=\\\"nomatch\\\" state=\\\"$:/state/notebook-sidebar\\\" text=\\\"yes\\\">\\n \u003C$button set=\\\"$:/state/notebook-sidebar\\\" setTo=\\\"yes\\\" tooltip=\\\"Toggle menu\\\" class=\\\"tc-btn-invisible sidebar-toggle\\\">\\n {{$:/themes/nico/notebook/images/bars}}\\n \u003C/$button>\\n\u003C/$reveal>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Search\": {\n \"title\": \"$:/themes/nico/notebook/ui/Search\",\n \"created\": \"20200429191943257\",\n \"modified\": \"20210126170723413\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\define advanced-search-actions()\\n\u003C$action-setfield $tiddler=\\\"$:/temp/advancedsearch/input\\\" text={{$:/temp/notebook-search}}/>\\n\u003C$action-setfield $tiddler=\\\"$:/temp/advancedsearch/refresh\\\" text=\\\"yes\\\"/>\\n\u003C$action-navigate $to=\\\"$:/AdvancedSearch\\\"/>\\n\\\\end\\n\\n\\\\define input-accept-actions()\\n\u003C$list filter=\\\"[\u003C__tiddler__>get[text]!is[missing]] ~[\u003C__tiddler__>get[text]is[shadow]]\\\">\\n \u003C$action-navigate $to={{{ [\u003C__tiddler__>get[text]] }}}/>\\n \u003C$action-deletetiddler $filter=\\\"[[$:/temp/search]] [\u003CsearchTiddler>] [\u003CsearchListState>]\\\"/>\\n\u003C/$list>\\n\\\\end\\n\\n\\\\define cancel-search-actions()\\n\u003C$list filter=\\\"[\u003CsearchTiddler>get[text]!match{$:/temp/search}]\\\" emptyMessage=\\\"\\\"\\\"\u003C$action-deletetiddler $filter=\\\"[[$:/temp/search]] [\u003CsearchTiddler>] [\u003CsearchListState>]\\\"/>\\\"\\\"\\\">\\n \u003C$action-setfield $tiddler=\\\"$:/temp/search\\\" text={{{ [\u003CsearchTiddler>get[text]] }}}/>\\n \u003C$action-setfield $tiddler=\\\"$:/temp/search/refresh\\\" text=\\\"yes\\\"/>\u003C/$list>\\n\\\\end\\n\\n\u003C$vars editTiddler=\\\"$:/temp/search\\\"\\n searchTiddler=\\\"$:/temp/search/input\\\"\\n searchListState=\u003C\u003Cqualify \\\"$:/state/search-list/selected-item\\\">>>\\n \u003C$macrocall $name=\\\"keyboard-driven-input\\\"\\n\\t tiddler=\u003C\u003CeditTiddler>>\\n\\t storeTitle=\u003C\u003CsearchTiddler>>\\n\\t selectionStateTitle=\u003C\u003CsearchListState>>\\n\\t refreshTitle=\\\"$:/temp/search/refresh\\\"\\n\\t type=\\\"search\\\"\\n\\t tag=\\\"input\\\"\\n\\t focus={{$:/config/Search/AutoFocus}}\\n\\t focusPopup=\\\"$:/state/popup/notebook-search\\\"\\n\\t class=\\\"tc-popup-handle\\\"\\n\\t filterMinLength={{$:/config/Search/MinLength}}\\n\\t placeholder=\\\"Search...\\\"\\n\\t inputAcceptActions=\u003C\u003Cinput-accept-actions>>\\n\\t inputCancelActions=\u003C\u003Ccancel-search-actions>>\\n\\t cancelPopups=\\\"yes\\\"\\n\\t configTiddlerFilter=\\\"[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]\\\"\\n\\t />\\n \u003C$button\\n tooltip={{$:/language/Buttons/AdvancedSearch/Hint}}\\n aria-label={{$:/language/Buttons/AdvancedSearch/Caption}}\\n class=\\\"tc-btn-invisible tc-page-controls\\\"\\n >\\n {{$:/core/images/advanced-search-button}}\\n \u003C\u003Cadvanced-search-actions>>\\n \u003C/$button>\\n \u003C$reveal tag=\\\"div\\\" class=\\\"tc-block-dropdown-wrapper\\\" state=\\\"$:/state/popup/notebook-search\\\" type=\\\"nomatch\\\" text=\\\"\\\" default=\\\"\\\">\\n \u003C$list filter=\\\"[\u003CsearchTiddler>get[text]minlength{$:/config/Search/MinLength}limit[1]]\\\" emptyMessage=\\\"\\\" variable=\\\"listItem\\\">\\n \u003Cdiv class=\\\"tc-block-dropdown tc-search-drop-down\\\">\\n \u003C$tiddler tiddler=\u003C\u003CconfigTiddler>>>\\n {{$:/themes/nico/notebook/ui/Sidebar/SearchResults}}\\n \u003C/$tiddler>\\n \u003C/div>\\n \u003C/$list>\\n \u003C/$reveal>\\n\u003C/$vars>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar/Headings\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar/Headings\",\n \"created\": \"20200429160014174\",\n \"modified\": \"20201210210231267\",\n \"tags\": \"$:/themes/nico/notebook/tags/Sidebar\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Cdiv class=\\\"segment\\\">\\n \u003Cdiv class=\\\"content\\\">\\n \u003Ch1 class=\\\"tc-site-title\\\">\\n {{$:/SiteTitle}}\\n \u003C/h1>\\n \u003Cdiv class=\\\"tc-site-subtitle\\\">\\n {{$:/SiteSubtitle}}\\n \u003C/div>\\n \u003C/div>\\n\u003C/div>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar/Search\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar/Search\",\n \"created\": \"20200429191943257\",\n \"modified\": \"20210124220152702\",\n \"tags\": \"$:/themes/nico/notebook/tags/Sidebar\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Cdiv class=\\\"mobile-only\\\">\\n \u003Cdiv class=\\\"segment\\\">\\n \u003Cdiv class=\\\"content search\\\">\\n {{$:/themes/nico/notebook/ui/Search}}\\n \u003C/div>\\n \u003C/div>\\n\u003C/div>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar/SearchResults\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar/SearchResults\",\n \"created\": \"20200429191943257\",\n \"modified\": \"20210126164631418\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\define searchResultList()\\n \u003Csmall>{{$:/language/Search/Matches/Title}}\u003C/small>\\n\\n \u003C$list filter=\\\"[!is[system]search:title{$(searchTiddler)$}sort[title]limit[250]]\\\">\\n \u003Cspan class={{{[\u003CcurrentTiddler>addsuffix[-primaryList]] -[\u003CsearchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>\\n \u003C$transclude tiddler=\\\"$:/core/ui/ListItemTemplate\\\"/>\\n \u003C/span>\\n \u003C/$list>\\n\\n \u003Csmall>{{$:/language/Search/Matches/All}}\u003C/small>\\n\\n \u003C$list filter=\\\"[!is[system]search{$(searchTiddler)$}sort[title]limit[250]]\\\">\\n \u003Cspan class={{{[\u003CcurrentTiddler>addsuffix[-secondaryList]] -[\u003CsearchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>\\n \u003C$transclude tiddler=\\\"$:/core/ui/ListItemTemplate\\\"/>\\n \u003C/span>\\n \u003C/$list>\\n\\\\end\\n\\n\u003Cdiv class=\\\"tc-search-results\\\">\\n \u003C\u003CsearchResultList>>\\n\u003C/div>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar/SectionTemplate\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar/SectionTemplate\",\n \"created\": \"20200429161226897\",\n \"modified\": \"20210202213859460\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\define sidebarHeading()\\n\u003C$vars tv-wikilinks=\\\"no\\\">\\n \u003C$transclude field=\\\"caption\\\">\\n \u003C$view field=\\\"title\\\"/>\\n \u003C/$transclude>\\n\u003C/$vars>\\n\\\\end\\n\\n\u003C$reveal state=\\\"$:/state/notebook-sidebar-section\\\" type=\\\"match\\\" text=\u003C\u003CcurrentTiddler>> default=\\\"no\\\" animate=\\\"no\\\">\\n \u003Cdiv class=\\\"segment section open\\\">\\n \u003C$button set=\\\"$:/state/notebook-sidebar-section\\\" setTo=\\\"\\\" class=\\\"tc-btn-invisible label\\\">\\n \u003C\u003CsidebarHeading>>\\n \u003Cspan class=\\\"caret\\\">{{$:/themes/nico/notebook/images/caret-down}}\u003C/span>\\n \u003C/$button>\\n \u003Cdiv class=\\\"content\\\">\\n \u003C$transclude $tiddler=\u003C\u003CcurrentTiddler>> mode=\\\"block\\\"/>\\n \u003C/div>\\n \u003C/div>\\n\u003C/$reveal>\\n\u003C$reveal state=\\\"$:/state/notebook-sidebar-section\\\" type=\\\"nomatch\\\" text=\u003C\u003CcurrentTiddler>> default=\\\"yes\\\" animate=\\\"no\\\">\\n \u003Cdiv class=\\\"segment section\\\">\\n \u003C$button set=\\\"$:/state/notebook-sidebar-section\\\" setTo=\u003C\u003CcurrentTiddler>> class=\\\"tc-btn-invisible label\\\">\\n \u003C\u003CsidebarHeading>>\\n \u003Cspan class=\\\"caret\\\">{{$:/themes/nico/notebook/images/caret-right}}\u003C/span>\\n \u003C/$button>\\n \u003C/div>\\n\u003C/$reveal>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar/Sections\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar/Sections\",\n \"created\": \"20200429163239707\",\n \"modified\": \"20210112213620486\",\n \"tags\": \"$:/themes/nico/notebook/tags/Sidebar\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$list filter=\\\"[all[shadows+tiddlers]!has[draft.of]tag[$:/tags/SideBar]]\\\">\\n {{||$:/themes/nico/notebook/ui/Sidebar/SectionTemplate}}\\n\u003C/$list>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar\",\n \"created\": \"20200428201218885\",\n \"modified\": \"20210112213605486\",\n \"tags\": \"$:/tags/PageTemplate\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\whitespace trim\\n\\\\define config-title()\\n$:/config/SideBarSegments/Visibility/$(listItem)$\\n\\\\end\\n\\n\u003C$reveal state=\\\"$:/state/notebook-sidebar\\\" type=\\\"match\\\" text=\\\"yes\\\" default=\\\"no\\\" retain=\\\"yes\\\" animate=\\\"no\\\">\\n \u003C$scrollable fallthrough=\\\"no\\\">\\n \u003Cdiv class=\\\"nc-sidebar\\\">\\n \u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/themes/nico/notebook/tags/Sidebar]!has[draft.of]]\\\" variable=\\\"listItem\\\">\\n \u003C$reveal type=\\\"nomatch\\\" state=\u003C\u003Cconfig-title>> text=\\\"hide\\\" tag=\\\"div\\\">\\n \u003C$transclude tiddler=\u003C\u003ClistItem>> mode=\\\"inline\\\"/>\\n \u003C/$reveal>\\n \u003C/$list>\\n \u003C/div>\\n \u003C/$scrollable>\\n\u003C/$reveal>\\n\\n\"\n },\n \"$:/themes/nico/notebook/ui/Topbar\": {\n \"title\": \"$:/themes/nico/notebook/ui/Topbar\",\n \"created\": \"20200428203101797\",\n \"modified\": \"20210124213834458\",\n \"tags\": \"$:/tags/PageTemplate\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$reveal state=\\\"$:/state/notebook-topbar\\\" type=\\\"match\\\" text=\\\"yes\\\" default=\\\"yes\\\" retain=\\\"yes\\\" animate=\\\"yes\\\">\\n \u003Cdiv class=\\\"nc-topbar-wrapper\\\">\\n \u003Cdiv class=\\\"nc-bar nc-topbar tc-adjust-top-of-scroll\\\">\\n \u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/NotebookTopbar]!has[draft.of]]\\\" variable=\\\"listItem\\\">\\n \u003C$reveal type=\\\"nomatch\\\" state=\u003C\u003Cconfig-title>> text=\\\"hide\\\" tag=\\\"div\\\">\\n \u003C$transclude tiddler=\u003C\u003ClistItem>> mode=\\\"block\\\"/>\\n \u003C/$reveal>\\n \u003C/$list>\\n \u003Cdiv class=\\\"left\\\">\\n\\t{{$:/themes/nico/notebook/ui/Buttons/menu}}\\n {{$:/themes/nico/notebook/ui/Search}}\\n \u003C/div>\\n \u003Cdiv class=\\\"right\\\">\\n {{$:/core/ui/SideBarSegments/page-controls}}\\n \u003C/div>\\n \u003C/div>\\n \u003C/div>\\n\u003C/$reveal>\\n\\n\"\n }\n }\n}","bag":"default","revision":"0","version":"1.4.1","type":"application/json","title":"$:/themes/nico/notebook","source":"https://github.com/NicolasPetton/Notebook","plugin-type":"theme","name":"Notebook theme","list":"LICENSE changelog","description":"A clean, uncluttered TiddlyWiki theme","dependents":"$:/themes/tiddlywiki/vanilla $:/plugins/nico/notebook-mobile","core-version":">=5.1.22","author":"NicolasPetton","modified":"20240627123010609"},
{"created":"20200429144554294","title":"$:/themes/nico/notebook/metrics/sidebar-width","modified":"20230423163514560","tags":"","type":"text/vnd.tiddlywiki","text":"300px"},
@@ -1421,7 +1421,7 @@ button.sidebar-toggle{
{"created":"20230428150217784","text":"clickable 3D links:\n\n\u003Cdiv class=\"border padding\" style=\"border:4px solid #F0F\">\n\t\u003Cspan class=\"big hi2\">protocol ://\u003C/span>\n\t\u003Cspan class=\"big hi2\">my.org/world.glb\u003C/span>\n\t\u003Cspan class=\"big hi1\">#room3\u003C/span>\n\u003C/div>\n\n''What is #room3?'': a spatial anchor/spawnpoint in a 3D scene(file).\n\n\n> XR Fragments turns 3D files into bookmarkable, clickable & teleportable \u003Cb>XR experiences\u003C/b>.\n\n!! Explain it like I'm 5 y/o\n\nSure, press play below:\n\n\u003Cdiv style=\"text-align:center\">\n\u003Cb style=\"font-size:11px\">~10min podcast deepdive\u003C/b>\u003Cbr>\n\u003Caudio controls>\n \u003Csource src=\"https://forgejo.isvery.ninja/assets/xrfragment.media/main/podcast-xrfragments-spec-xrwg.mp3\" type=\"audio/mpeg\" />\n\u003C/audio>\n\u003C/div>\n\u003Cbr>\n\nWhen clicking an ''href''-value, the user(camera) is teleported to the referenced object.\n\nThe imported/teleported destination can be another object in the same scene-file, or a different file.\n\n!! Adding a link\n\n[img[xrfragment.jpg]]\n\n> Above a typical \u003Cb>level1\u003C/b>-syntax. See [[β What are levels?]] for more.\n\n!! Example diagram with href's\n\n## Example: internal & external teleport\n\n```\n\n +ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ+ \n β β\n β index.glb β\n β β β during teleport:\n β βββ β» roomB β camera's Y-coord will be set\n β β β ~1.6m above (roomB's) origin\n | | | except in case of camera-rig\n β βββ β» buttonA β (=non-root camera for VR e.g.)\n β β β href: #roomB β\n | β β +ββββββββββββββββββββββββ+\n β βββ β» buttonB β | other.usdz |\n β β href: other.usdz#roomC β | | |\n β β | | |\n +ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ+ | βββ β» roomC |\n | βββ» kittens | \n +ββββββββββββββββββββββββ+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n clicking buttonA will teleport the user to object `roomB`\n \n clicking buttonB will replace the scene with `other.usdz` and\n\tteleport the user to object `roomC` with very cute kittens. \n\t \n```\n\n!! 3D (Game)engine feature-hinting\n\nXR Fragments promotes ''file-agnostic'' but allows enabling ''engine-specific'' features via [[πlevel7: engine prefixes]]\n\n!! How can XR Browsers surf these worlds?\n\nUsing an \u003Cb>URL-bar\u003C/b> in your browser, app or OS, or button-object inside your 3D file (with [[href]] extra).\u003Cbr>\nThe URL should points to an 3D scene or file ([[glTF|https://en.wikipedia.org/wiki/GlTF]], [[USDZ|https://en.wikipedia.org/wiki/Universal_Scene_Description]], [[OBJ|https://en.wikipedia.org/wiki/Wavefront_.obj_file]], [[COLLADA|https://en.wikipedia.org/wiki/COLLADA]], [[FBX|https://en.wikipedia.org/wiki/FBX]] e.g.):\n\u003Cbr>\u003Cbr>\u003Cbr>\n\u003Cdiv class=\"border padding\" style=\"border:4px solid #888\">\n\t\u003Cspan class=\"big\" style=\"width:160px; display: inline-block\">2D documents:\u003C/span>\n\t\u003Cspan class=\"big hi1\">https ://\u003C/span>\n\t\u003Cspan class=\"big hi2\">foo.org/article.html\u003C/span>\n\t\u003Cspan class=\"big hi1\">#chapter2\u003C/span>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv class=\"border padding\" style=\"border:4px solid #F0F\">\n\t\u003Cspan class=\"big\" style=\"width:160px; display: inline-block\">3D documents:\u003C/span>\n\t\u003Cspan class=\"big hi1\">protocol ://\u003C/span>\n\t\u003Cspan class=\"big hi2\">foo.org/world.glb\u003C/span>\n\t\u003Cspan class=\"big hi1\">#room2\u003C/span>\n\u003C/div>\n\n\u003Cbr>\n\n> Above a typical \u003Cb>level1\u003C/b>-syntax. See [[β What are levels?]] for more.\n\n!! How can I add interactions to existing 3D assets/scenes?\n\nBy manually adding \u003Cb>metadata\u003C/b> inside 3D objects/asset/scene or via a [[sidecar-file|π level0: File]], which gives a 3D file interactive powers.\n\n\u003Cbr>\n\u003Cdiv style=\"max-width:600px\">\n\u003C$videojs controls=\"controls\" aspectratio=\"16:9\" preload=\"auto\" poster=\"\" fluid=\"fluid\" class=\"vjs-big-play-centered\">\n \u003Csource src=\"https://forgejo.isvery.ninja/assets/xrfragment.media/main/sharing.mp4\" type=\"video/mp4\"/>\n\u003C/$videojs>\n\u003C/div>\n\n\u003Cbr>\nBelow is the related section of the spec (full spec here: \u003Ca href=\"doc/RFC_XR_Fragments.html\" target=\"_blank\">HTML\u003C/a>, \u003Ca href=\"doc/RFC_XR_Fragments.txt\" target=\"_blank\">TXT\u003C/a>)\n\n\u003Ciframe src=\"doc/RFC_XR_Fragments.html#spatial-referencing-3d\" frameborder=\"0\" class=\"spec\">\u003C/iframe>\n\nsee [[Getting started]] to get going!","title":"How it works","modified":"20260918081434752","type":"text/vnd.tiddlywiki","tags":"Home"},
{"created":"20250902141401836","text":"\u003C\u003Ctoc-selective-expandable 'howto' sort[title]>>","tags":"$:/tags/SideBar","title":"Howto","modified":"20250902141443289","list-before":"$:/core/ui/SideBar/Open"},
{"created":"20230522115709081","text":"!!! Adding links to 3D objects\n\n> ''Clicking'' an 3D object with href-data, will teleport the user to that file and/or object.\n\n\u003Cbr>\u003Chr>\n\n[img[xrfragment.jpg]]\n\n\u003Chr>\u003Cbr>\n\n{{href examples}}\n\n| property | type | example value |\n|`href`| string (uri) | `#bar`\u003Cbr>`#pyramid`\u003Cbr>`xrf://#-someobject`\u003Cbr>`://somefile.gltf#foo`\u003Cbr> |\n\n!! Interaction behaviour\n\n1. when clicking a ''href''-value (`#bar` e.g.), the user(camera) is teleport to the referenced object.\n\n2. when clicking a remote ''href''-value (`https://foo.org/hello.glb#bar` e.g.), then that 3D file replaces the current scene (+user(camera) is teleported to any referenced object `roomB`).\n\n> ''XR Safety Exception:'' when linking to a 3D file which has zero signs of XR Fragments (see [[π level0: File]]), it will be treated as an [[Object import|#!]]\n\n!Spec\n\nSee the full spec here: \u003Ca href=\"doc/RFC_XR_Fragments.html\" target=\"_blank\">HTML\u003C/a>, \u003Ca href=\"doc/RFC_XR_Fragments.txt\" target=\"_blank\">TXT\u003C/a>\n\n> solutions in the spec were abducted from [[this|https://i.imgur.com/E3En0gJ.png]] and [[this|https://i.imgur.com/lpnTz3A.png]] survey result\n\n!!!Demo\n\n\u003C$videojs controls=\"controls\" aspectratio=\"16:9\" preload=\"auto\" poster=\"\" fluid=\"fluid\" class=\"vjs-big-play-centered\">\n \u003Csource src=\"https://forgejo.isvery.ninja/assets/xrfragment.media/main/href.mp4\" type=\"video/mp4\"/>\n\u003C/$videojs>\n\n> capture of \u003Ca href=\"./example/aframe/sandbox\" target=\"_blank\">aframe/sandbox\u003C/a>\n\n!! XR Viewer implementation\n\n| ''spec'' | ''action'' | ''feature'' |\n| level0+1 | hover 3D file [[href]] | show the preview PNG thumbnail (if any). See [[π level0: File]]) |\n| level0+1 | launch 3D file [[href]] | replace the current scene with a new 3D file (`href: other.glb` e.g.) |\n| level2 | click internal 3D file [[href]] (`#roomB` e.g.) | teleport the camera to the origin of object(name `roomB`). See [[teleport camera]].|\n| level2 | click external 3D file [[href]] (`foo.glb` e.g.) | replace the current scene with a new 3D file (`href: other.glb` e.g.) |\n| level2 | hover external 3D file [[href]] | show the preview PNG thumbnail (if any sidecar [[π level0: File]]) |\n| level2 | click [[href]] | hashbus: execute without changing the toplevel URL location (`href: xrf://#someObjectName` e.g.) |\n| level3 | click [[href]] | set the global 3D animation timeline to its Media Fragment value (`#t=2,3` e.g.) |\n\n> NOTE: hashbus links (`xrf://#foo&bar`) don't change the toplevel URL, which makes it ideal for interactions (in contrast to typical `#roomC` navigation, which benefit back/forward browser-buttons), see \u003Ca href=\"#hashbus\">hashbus\u003C/a> for more info.\n\n!! XRF viewer pseudocode\n\n```\nscene.traverse( (n) => {\n if( n.userData.href ){\n n.addEventListener('click', () => scene.teleport(n.userData.href) )\n }\n})\n```\n","tags":"[[π level2: explicit hyperlinks]] level2 optional","title":"href","modified":"20260717130217745","type":"text/vnd.tiddlywiki"},
-{"created":"20260717125732320","text":"\n\u003Cdiv class=\"tab-frame\" style=\"padding:15px;min-height:310px;\">\n\n \u003Cinput type=\"radio\" checked name=\"tab_alert\" id=\"tab1_alert\"/>\n \u003Clabel for=\"tab1_alert\">JanusXR\u003C/label>\t\n\t\u003Cinput type=\"radio\" name=\"tab_alert\" id=\"tab2_alert\"/>\n \u003Clabel for=\"tab2_alert\">THREE.js\u003C/label>\n\t\u003Cinput type=\"radio\" name=\"tab_alert\" id=\"tab3_alert\"/>\n \u003Clabel for=\"tab3_alert\">AFRAME\u003C/label>\n \t\u003Cinput type=\"radio\" name=\"tab_alert\" id=\"tab4_alert\"/>\n \u003Clabel for=\"tab4_alert\">MML\u003C/label>\n \u003Cinput type=\"radio\" name=\"tab_alert\" id=\"tab5_alert\"/>\n \u003Clabel for=\"tab5_alert\">Blender3D\u003C/label>\n\t\u003Cdiv class=\"tab\">\n\t\n```xml\n\u003Croom>\n \u003Cobject id=\"cube\" href=\"#building\"/>\n \u003Cobject id=\"building.glb\"/>\n \u003Clink url=\"foo.glb#spawn\"/>\n\u003C/room>\n```\n\t\nClicking the cube will teleport the user to object `building`.\u003Cbr>\nClicking the portal (`\u003Clink>`) will clear the scene, load `foo.glb` and teleport the user to object `spawn`.\n\n> For more info [about JanusXR](https://coderofsalvation.github.io/janus-guide/)\n\u003C/div>\n\n\u003Cdiv class=\"tab\">\n\t\n```javascript\ncube = scene.getObjectByName(\"cube\")\nsphere = scene.getObjectByName(\"sphere\")\n\n// add URI's with XR Fragments \ncube.userData.href = '#platform2'\nsphere.userData.href = \"foo.glb#spawn'\n\n// local teleport!\ncube.onClick = () => { \n camera.position.copy( scene.getObjectByName(\"platform2\").position )\n}\n\n// remote teleport!\nsphere.onClick = await () => { \n scene.clear()\n await scene.load('foo.glb')\n camera.position.copy( scene.getObjectByName(\"spawn\").position )\n}\n```\t\n\nClicking the cube will teleport the user to object 'platform2'.\u003Cbr/>\nClicking the sphere will clear the scene, load `foo.glb` and teleport the user to object `spawn`.\n\u003C/div>\n\n\n\u003Cdiv class=\"tab\">\n\n> \u003Cb>NOTE:\u003C/b> gltf-models fully support href's in \u003Ca href=\"#π§° AFRAME\">this implementation\u003C/a> but href in markup is not supported (yet: JanusXR is a safer bet)\n\n```xml\n\u003Ca-scene>\n \u003Ca-cube href=\"#building\"/>\n \u003Clink href=\"foo.glb#spawn\"/>\n\u003C/a-scene>\n```\n\nClicking the cube will teleport the user to object `building`.\u003Cbr>\nClicking the portal (`\u003Clink>`) will clear the scene, load `foo.glb` and teleport the user to object `spawn`.\u003C/div>\n\u003C/div>\n\n\u003Cdiv class=\"tab\">\n\n> \u003Cb>NOTE:\u003C/b> no implementation (yet)\n\n```xml\n\u003Cm-cube href=\"#building\">\u003C/m-cube>\n\u003Cm-sphere href=\"foo.glb#spawn\">\u003C/m-cube>\n```\n\nClicking the cube will teleport the user to object `building`.\u003Cbr>\nClicking the sphere will clear the scene, load `foo.glb` and teleport the user to object `spawn`.\u003C/div>\n\u003C/div>\n\t\u003Cdiv class=\"tab\">\n\t\tAll modern 3D editors can attach metadata to objects, and export these as 'extras' with the 3D file.\u003Cbr>\n\n[img[xrfragment.jpg]]\n\n> An Easy **nocode** way to add metadata is [by adding custom properties in blender e.g.](https://docs.blender.org/manual/en/2.79/data_system/custom_properties.html). This is demonstrated in the getting started video: \n\n\u003Cdiv style=\"max-width:300px\">\n\u003C$videojs controls=\"controls\" aspectratio=\"16:9\" preload=\"auto\" poster=\"\" fluid=\"fluid\" class=\"vjs-big-play-centered\">\n\u003Csource src=\"https://forgejo.isvery.ninja/assets/xrfragment.media/main/gettingstarted2024.mp4#t=200\" type=\"video/mp4\"/>\n\u003C/$videojs>\n\u003C/div>\n\u003C/div>\n\n\n\u003C/div>","tags":"","title":"href examples","modified":"20260917124438317","type":"text/markdown"},
+{"created":"20260717125732320","text":"\n\u003Cdiv class=\"tab-frame\" style=\"padding:15px;min-height:310px;\">\n\n \u003Cinput type=\"radio\" checked name=\"tab_alert\" id=\"tab1_alert\"/>\n \u003Clabel for=\"tab1_alert\">JanusXR\u003C/label>\t\n\t\u003Cinput type=\"radio\" name=\"tab_alert\" id=\"tab2_alert\"/>\n \u003Clabel for=\"tab2_alert\">THREE.js\u003C/label>\n\t\u003Cinput type=\"radio\" name=\"tab_alert\" id=\"tab3_alert\"/>\n \u003Clabel for=\"tab3_alert\">AFRAME\u003C/label>\n \t\u003Cinput type=\"radio\" name=\"tab_alert\" id=\"tab4_alert\"/>\n \u003Clabel for=\"tab4_alert\">MML\u003C/label>\n \u003Cinput type=\"radio\" name=\"tab_alert\" id=\"tab5_alert\"/>\n \u003Clabel for=\"tab5_alert\">Blender3D\u003C/label>\n\t\u003Cdiv class=\"tab\">\n\t\n```xml\n\u003Croom>\n \u003Cobject id=\"plane\" js_id=\"button\" href=\"#building\"/>\n \u003Cobject id=\"cube\" js_id=\"building\"/>\n \u003Clink url=\"foo.glb#spawn\"/>\n\u003C/room>\n```\n\t\nClicking the plane will teleport the user to object `building`.\u003Cbr>\nClicking the portal (`\u003Clink>`) will clear the scene, load `foo.glb` and teleport the user to object `spawn`.\n\n> For more info [about JanusXR](https://coderofsalvation.github.io/janus-guide/)\n\u003C/div>\n\n\u003Cdiv class=\"tab\">\n\t\n```javascript\ncube = scene.getObjectByName(\"cube\")\nsphere = scene.getObjectByName(\"sphere\")\n\n// add URI's with XR Fragments \ncube.userData.href = '#platform2'\nsphere.userData.href = \"foo.glb#spawn'\n\n// local teleport!\ncube.onClick = () => { \n camera.position.copy( scene.getObjectByName(\"platform2\").position )\n}\n\n// remote teleport!\nsphere.onClick = await () => { \n scene.clear()\n await scene.load('foo.glb')\n camera.position.copy( scene.getObjectByName(\"spawn\").position )\n}\n```\t\n\nClicking the cube will teleport the user to object 'platform2'.\u003Cbr/>\nClicking the sphere will clear the scene, load `foo.glb` and teleport the user to object `spawn`.\n\u003C/div>\n\n\n\u003Cdiv class=\"tab\">\n\n> \u003Cb>NOTE:\u003C/b> gltf-models fully support href's in \u003Ca href=\"#π§° AFRAME\">this implementation\u003C/a> but href in markup is not supported (yet: JanusXR is a safer bet)\n\n```xml\n\u003Ca-scene>\n \u003Ca-cube href=\"#building\"/>\n \u003Clink href=\"foo.glb#spawn\"/>\n\u003C/a-scene>\n```\n\nClicking the cube will teleport the user to object `building`.\u003Cbr>\nClicking the portal (`\u003Clink>`) will clear the scene, load `foo.glb` and teleport the user to object `spawn`.\u003C/div>\n\u003C/div>\n\n\u003Cdiv class=\"tab\">\n\n> \u003Cb>NOTE:\u003C/b> no implementation (yet)\n\n```xml\n\u003Cm-cube href=\"#building\">\u003C/m-cube>\n\u003Cm-sphere href=\"foo.glb#spawn\">\u003C/m-cube>\n```\n\nClicking the cube will teleport the user to object `building`.\u003Cbr>\nClicking the sphere will clear the scene, load `foo.glb` and teleport the user to object `spawn`.\u003C/div>\n\u003C/div>\n\t\u003Cdiv class=\"tab\">\n\t\tAll modern 3D editors can attach metadata to objects, and export these as 'extras' with the 3D file.\u003Cbr>\n\n[img[xrfragment.jpg]]\n\n> An Easy **nocode** way to add metadata is [by adding custom properties in blender e.g.](https://docs.blender.org/manual/en/2.79/data_system/custom_properties.html). This is demonstrated in the getting started video: \n\n\u003Cdiv style=\"max-width:300px\">\n\u003C$videojs controls=\"controls\" aspectratio=\"16:9\" preload=\"auto\" poster=\"\" fluid=\"fluid\" class=\"vjs-big-play-centered\">\n\u003Csource src=\"https://forgejo.isvery.ninja/assets/xrfragment.media/main/gettingstarted2024.mp4#t=200\" type=\"video/mp4\"/>\n\u003C/$videojs>\n\u003C/div>\n\u003C/div>\n\n\n\u003C/div>","tags":"","title":"href examples","modified":"20260922103047596","type":"text/markdown"},
{"created":"20230706161915394","text":"> Let's look at the browser thru the lens of XR, and not the other way around (it's a trap).\n\n* a \u003Cb>2D hyperlink\u003C/b> navigates/replaces the current document (or opens a tab)\n* a \u003Cb>hyperpreview\u003C/b> simply links/shows/summarizes an 2D/3D object/document/image\n\nA \u003Cb>hyperpreview\u003C/b> promotes \u003Cb>approximated summaries\u003C/b> of text documents, instead of fully supporting/rendering them.\u003Cbr>\nThat way, opening the content (spatially) will be offloaded to (other applications) on the client or operating system.\u003Cbr>\nThis is in contrast with traditional 2D (space-restricted) way of opening hyperlinks in new tabs (or replacing the current document).\n\n\n> Basically: the moment you want to implement HTML iframes into your spatial experience, you're looking at XR thru the lens of 2D (a common trap). The higher-dimensional recursive nature of XR Fragments \u003Cb>already allows\u003C/b> recursive (spatial i)frames.\n\n## Spec 0.5\n\n1. mimetype `text/html` instanced by [src](#src) should should be \u003Cb>hyperpreviewable\u003C/b> (a non-interactive 2D image-texture).\n\n2. When interacting with a \u003Cb>hyperpreview\u003C/b>, the XR Fragment host/client should offer copy/share of the adress (to clipboard and optionally other applications which can handle the mimetype).\n\n3. \u003Cb>hyperpreviews\u003C/b> should not aim for achieving 100% render-compatibility of all mimetypes. The goal is \u003Cb>addressbility\u003C/b> and \u003Cb>approximated summarization\u003C/b>, not embedding javascript-supported browser-iframes.\n\n4. Designers can solve unsupported mimetypes by using `src` for an image-thumbnail and `href` for the content (which should be offloaded to the (applications on) the operatingsystem)\n\nmimetype behaviour when user interacts with `src`:\n\n| mimetype | render | hyperpreview | action | update URL fragment | clipboard contents after clicking |\n|-|-|-|-|-|-|\n|\u003Cb>unknown mimetypes\u003C/b>| no | \n|text/html| no | yes |\u003Cb>summarize\u003C/b> HTML-text (first paragraph hinted by a fragment identifier e.g.) using crude html-to-image | name of object (`#website`) |\n|\u003Cb>3d objects\u003C/b>\u003Cbr>model/gltf+json\u003Cbr>model/glb\u003Cbr>model/obj\u003Cbr>..and so on | yes | no | highlight \u003Cbr>(draw boundingbox e.g.) | name of object (`#cube` e.g.) | `src`-value + linebreak + url with fragment: `http://other.com/other.gltf`\u003Cbr>`https://foo.com/#cube`\u003Cbr>Sharing such 'trail' (with the clipboardmanager) promotes backwards-reasoning (`other.gltf` is a cube in `scene.gltf` e.g.)\n|\u003Cb>images\u003C/b>\u003Cbr>image/png\u003Cbr>image/jpg\u003Cbr>image/gif\u003Cbr>..and so on | yes | no | highlight \u003Cbr>(draw border/boundingbox e.g.) | name of object (`#poster` e.g.) | object url with fragment (`https://foo.com/#cube` e.g.)\n\n\u003Chr>\n\n\u003Cb>Example\u003C/b>: embed an HTML document into your scene\n\n* create a plane with custom property [src](#src) and value `https://mysite.com/foo.html#summary` or `https://mysite.com/foo.html#chapter1`. \n* add custom property [\nso that the XR Fragment client can easily render a html-to-image conversion to a texture.\u003Cbr>\nThis is perfect for simple text.\u003Cbr>\nCRUD/scripting/animations don't belong in \u003Cb>hyperpreviews\u003C/b> and can partially be re-used in the 3D assets (using [src](#src) or fbx/gltf animations).\u003Cbr>\n\n\u003Chr>\n\n\u003Cb>Q\u003C/b>: How can I embed text from a textfile on a server?\n\n\u003Cb>A\u003C/b>: create an [src](#src) with value `https://mysite.com/foo.txt` so that the XR Fragment client can easily render a html-to-image conversion to a (non)scrolling texture.\u003Cbr>\n\n\u003Cbr>\n\n## Why are hyperpreviews so limited?\n\nBecause \u003Cb>hyperpreviews\u003C/b> separate the following concerns of hyperlinks: navigation, addressibility, interaction and rendering.\n\u003Cbr>\nIn \u003Cb>2D hyperlinks\u003C/b> we click links, which \u003Cb>navigates us to\u003C/b> AND \u003Cb>renders\u003C/b> the destination.\n\u003Cbr>\n\u003Cbr>\nIn Spatial Experiences endusers are better off \u003Cb>hyperpreviewing\u003C/b> hyperlinks, which optionally can (due to their \u003Cb>addressibility\u003C/b> be opened in another application or device).\u003Cbr>\n\u003Cbr>\n> The aim/goal of forcing a user to interact with all mimetypes spatially is not realistic.\n\nIf we would indulge on the latter, we're opening a can of worms regarding:\n\n* security (malicious actors thrive when going beyond read-only previews or `HTTP GET`)\n* the spatial browser becomes **mimetype-rendering-silos** (ballooning in size & support)\n* rendering speed / framedropping","tags":"","title":"hyperpreview vs 2D hyperlinks","modified":"20230707090417999","type":"text/markdown"},
{"created":"20251008100856174","text":"\u003Cdiv style=\"width:66%\">\n\u003Cstyle> .animated#svg_animate_1028 #background-simple{} .animated#svg_animate_1028 #Ground{}#svg_animate_1028 #Plants{transform-origin: 76.2373% 64.4462%} .animated#svg_animate_1028 #Plants{}#svg_animate_1028 #Graphics{transform-origin: 48.3540% 43.0520%} .animated#svg_animate_1028 #Graphics{animation: 1s Infinite linear svg_wind; animation-delay: 0s}#svg_animate_1028 #Character{transform-origin: 37.9419% 54.2985%} .animated#svg_animate_1028 #Character{}#svg_animate_1028 #Options{transform-origin: 61.1830% 37.8600%} .animated#svg_animate_1028 #Options{animation: 1s Infinite linear svg_floating; animation-delay: 0s}@keyframes svg_floating {0% {opacity: 1;transform: translateY(0px);}50% {transform: translateY(-10px);}100% {opacity: 1;transform: translateY(0px);}}@keyframes svg_wind {0% {transform: rotate( 0deg );}25% {transform: rotate( 1deg );}75% {transform: rotate( -1deg );}}\u003C/style>\t\t\u003Csvg class=\"svg_animate\" id=\"svg_animate_1028\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 500 500\">\u003Cdefs>\u003Cclippath id=\"clip-path\">\u003Crect x=\"173.2\" y=\"138.68\" width=\"35.4\" height=\"15.51\" rx=\"3\" style=\"fill:#949de3;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/rect>\u003C/clippath>\u003C/defs>\u003Cg id=\"background-simple\">\u003Cpath d=\"M329.78,377.48c4.65-1.52,9.38-2.74,14.14-3.82,14.58-3.3,48.64-15.65,73.91-60.82,33-59,27-149-14-199s-105-67-166-51c-29.73,7.8-49.55,28-66.67,52.39-14.92,21.23-31.7,41.7-54.28,55.13-22.37,13.31-45.35,23.92-56.64,49.21-27.49,61.53-7.4,133.13,57.59,157.27C183.41,401.2,290.24,390.45,329.78,377.48Z\" style=\"fill:#949de3\">\u003C/path>\u003Cpath d=\"M329.78,377.48c4.65-1.52,9.38-2.74,14.14-3.82,14.58-3.3,48.64-15.65,73.91-60.82,33-59,27-149-14-199s-105-67-166-51c-29.73,7.8-49.55,28-66.67,52.39-14.92,21.23-31.7,41.7-54.28,55.13-22.37,13.31-45.35,23.92-56.64,49.21-27.49,61.53-7.4,133.13,57.59,157.27C183.41,401.2,290.24,390.45,329.78,377.48Z\" style=\"fill:#fff;opacity:0.7000000000000001\">\u003C/path>\u003C/g>\u003Cg id=\"Ground\">\u003Cellipse cx=\"263.91\" cy=\"424.26\" rx=\"182.91\" ry=\"15\" style=\"fill:#949de3\">\u003C/ellipse>\u003Cellipse cx=\"263.91\" cy=\"424.26\" rx=\"182.91\" ry=\"15\" style=\"fill:#fff;opacity:0.5\">\u003C/ellipse>\u003C/g>\u003Cg id=\"Plants\">\u003Cpath d=\"M437.49,292.62l0,0h0l0-.05,0,0c-1.22-.12-13.78-1.2-25.25,4.76a30.67,30.67,0,0,0,6.49-22.56c-2.76-27.67-28.88-43.51-30.89-44.7V230l-.06,0-.07,0v.07c-2,1.19-28.12,17-30.89,44.7a30.77,30.77,0,0,0,2.4,15.74c-14.71-8.79-31.86-7.31-33.44-7.15l0-.05,0,.05h-.06l0,.05c-.77,1.79-10.59,25.38,1.2,45.44,10.55,17.93,32.66,13.19,38.67,11.51,5.05,5.3,14.24,17.36,18.31,37.95h-5.73l2.76,39h12.89l2.76-39h-6.74a119.13,119.13,0,0,1,16.46-39.21c6,1.49,22.29,4,30.31-9.62C446.08,313.22,438.12,294.07,437.49,292.62Zm-50.17-.15-13.63-18.92a.37.37,0,0,1,.61-.43l13,18.11V272.07l0,0-13.63-18.92a.38.38,0,0,1,.09-.52.37.37,0,0,1,.52.09l13,18.11V243a.37.37,0,0,1,.37-.37.38.38,0,0,1,.37.37v27L402.22,252a.37.37,0,0,1,.59.46l-14.73,18.68V290.3l14.14-17.94a.37.37,0,0,1,.59.46L388.08,291.5v16.21l14.14-17.94a.37.37,0,0,1,.52-.06.38.38,0,0,1,.07.52l-14.73,18.68v.35h-1.21L373.69,291a.38.38,0,0,1,.09-.52.37.37,0,0,1,.52.09l13,18.11v-16.2Zm-21.64,46.18-1.35-1.84-19.16-5.34a.31.31,0,0,1,.16-.6L363.74,336l-8-10.95-19.17-5.35a.3.3,0,0,1-.21-.38.31.31,0,0,1,.38-.21l18.41,5.13-9.47-12.95L326.52,306a.31.31,0,1,1,.16-.59l18.41,5.13-13.31-18.21a.32.32,0,0,1,.07-.44.31.31,0,0,1,.43.07l13.77,18.84-.13-18.67a.3.3,0,0,1,.3-.31.31.31,0,0,1,.32.31l.14,19.5h0l9.46,12.94L356,305.84a.31.31,0,0,1,.31-.31.3.3,0,0,1,.31.3l.14,19.5h0l8,10.94-.13-18.68a.31.31,0,0,1,.31-.31.31.31,0,0,1,.31.31l.14,19.5h0l1.14,1.57Zm2.17,0c2.8-4.25,10.87-18.22,6-31.65a61.1,61.1,0,0,0,12,6.11v60.63C381.43,355.16,373.09,344,368,338.65Zm21,31.35V313.39a60.68,60.68,0,0,0,11.43-5.57c-7.69,12.33.92,26.57,3.19,29.93A118.5,118.5,0,0,0,388.81,370Zm47.95-59.09-15.55,4.33-7.68,10.51,14.94-4.16a.25.25,0,0,1,.31.17.26.26,0,0,1-.18.31l-15.55,4.34-6.49,8.88,14.93-4.17a.26.26,0,0,1,.31.18.25.25,0,0,1-.17.31L406.08,336l-.82,1.11c-.15-.08-.29-.17-.43-.26l.47-.64h0l.12-15.82a.25.25,0,0,1,.5,0l-.11,15.15,6.49-8.88h0l.12-15.82a.25.25,0,0,1,.5,0L412.75,326l7.68-10.5h0l.12-15.83a.25.25,0,0,1,.25-.25.26.26,0,0,1,.25.26l-.11,15.15,11.18-15.29a.25.25,0,1,1,.4.3l-10.8,14.78,14.94-4.17a.25.25,0,0,1,.13.49Z\" style=\"fill:#263238\">\u003C/path>\u003C/g>\u003Cg id=\"Graphics\">\u003Cline x1=\"124.64\" y1=\"227.13\" x2=\"124.64\" y2=\"236\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/line>\u003Cline x1=\"129.07\" y1=\"231.56\" x2=\"120.2\" y2=\"231.56\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/line>\u003Cline x1=\"403.3\" y1=\"151.13\" x2=\"403.3\" y2=\"160\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/line>\u003Cline x1=\"407.74\" y1=\"155.56\" x2=\"398.87\" y2=\"155.56\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/line>\u003Cline x1=\"221.3\" y1=\"269.13\" x2=\"221.3\" y2=\"278\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/line>\u003Cline x1=\"225.74\" y1=\"273.56\" x2=\"216.87\" y2=\"273.56\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/line>\u003Cline x1=\"301.3\" y1=\"82.46\" x2=\"301.3\" y2=\"91.33\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/line>\u003Cline x1=\"305.74\" y1=\"86.9\" x2=\"296.87\" y2=\"86.9\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/line>\u003Cline x1=\"301.3\" y1=\"320.56\" x2=\"301.3\" y2=\"329.43\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/line>\u003Cline x1=\"305.74\" y1=\"325\" x2=\"296.87\" y2=\"325\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/line>\u003Cline x1=\"231.05\" y1=\"113.95\" x2=\"231.05\" y2=\"120.05\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/line>\u003Cline x1=\"234.1\" y1=\"117\" x2=\"228\" y2=\"117\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/line>\u003Cline x1=\"100.56\" y1=\"150.56\" x2=\"100.56\" y2=\"159.44\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/line>\u003Cline x1=\"105\" y1=\"155\" x2=\"96.13\" y2=\"155\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/line>\u003Cline x1=\"145.3\" y1=\"326.46\" x2=\"145.3\" y2=\"335.33\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/line>\u003Cline x1=\"149.74\" y1=\"330.9\" x2=\"140.87\" y2=\"330.9\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/line>\u003Ccircle cx=\"392\" cy=\"119.16\" r=\"7.33\" transform=\"translate(178.71 468.97) rotate(-75.54)\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/circle>\u003Cpath d=\"M310,273a7.34,7.34,0,1,1-7.33-7.33A7.33,7.33,0,0,1,310,273Z\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Ccircle cx=\"106.67\" cy=\"288.49\" r=\"7.33\" transform=\"translate(-99.3 60.06) rotate(-21.75)\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/circle>\u003Ccircle cx=\"235\" cy=\"344.12\" r=\"4.88\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/circle>\u003Cpath d=\"M314.67,194.16a1.67,1.67,0,1,1-1.67-1.67A1.66,1.66,0,0,1,314.67,194.16Z\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpath d=\"M202.33,170.16a1.67,1.67,0,0,1-3.33,0,1.67,1.67,0,1,1,3.33,0Z\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpath d=\"M256,275a1.67,1.67,0,1,1-1.67-1.67A1.67,1.67,0,0,1,256,275Z\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpath d=\"M337,353a1.67,1.67,0,1,1-1.67-1.67A1.67,1.67,0,0,1,337,353Z\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpath d=\"M249.65,74.48a8,8,0,0,1,6,2.92,8.1,8.1,0,0,1,1.88,5.15,8,8,0,0,1-3.1,6.16,6.34,6.34,0,0,0-3.63,5.85c-.1.68-.41,1-.92,1s-1-.39-1-.76v-.58c0-2.89,1.56-5.29,4.7-7.22a6.42,6.42,0,0,0,2-4.68c0-2.28-1.21-4.1-3.61-5.46a9.47,9.47,0,0,0-2.56-.48q-3.54,0-5.55,3.78l-.51,2.48c-.27.35-.52.52-.74.52-.7-.14-1-.45-1-.91q0-3.75,3.7-6.54A9,9,0,0,1,249.65,74.48Zm0,24.08h.25c.63,0,1.08.4,1.35,1.21v.39a1.47,1.47,0,0,1-1.52,1.4c-1-.21-1.48-.68-1.48-1.42A1.5,1.5,0,0,1,249.63,98.56Z\" style=\"fill:#263238\">\u003C/path>\u003Cpath d=\"M83.67,240.52a8,8,0,0,1-6-2.93,8.15,8.15,0,0,1-1.87-5.15,8,8,0,0,1,3.1-6.16,6.33,6.33,0,0,0,3.63-5.85c.1-.68.41-1,.92-1s1,.39,1,.76v.58c0,2.89-1.57,5.29-4.7,7.22a6.42,6.42,0,0,0-2,4.68q0,3.43,3.61,5.46a9.47,9.47,0,0,0,2.56.48q3.54,0,5.55-3.78l.51-2.47c.27-.36.52-.53.74-.53.7.14,1,.45,1,.92q0,3.73-3.7,6.53A9,9,0,0,1,83.67,240.52Zm0-24.09h-.25c-.63,0-1.08-.4-1.35-1.21v-.39a1.47,1.47,0,0,1,1.52-1.4c1,.21,1.48.68,1.48,1.42A1.5,1.5,0,0,1,83.69,216.43Z\" style=\"fill:#263238\">\u003C/path>\u003Cpath d=\"M102.27,108.34a4.31,4.31,0,0,1,4.18,4.29,4.31,4.31,0,0,1-1.66,3.29,3,3,0,0,0-1.71,2.74c-.07.49-.32.73-.73.73s-.71-.31-.71-.62v-.29a4.42,4.42,0,0,1,2.44-3.81,2.9,2.9,0,0,0,.92-2.15,2.8,2.8,0,0,0-1.66-2.51,4.36,4.36,0,0,0-1.18-.23,2.81,2.81,0,0,0-2.55,1.74l-.26,1.26a.84.84,0,0,1-.63.4c-.49-.1-.74-.34-.74-.7a4.32,4.32,0,0,1,2-3.48A4.84,4.84,0,0,1,102.27,108.34Zm0,12.06h.16c.42,0,.73.27.91.81v.25a1,1,0,0,1-1,.93c-.64-.14-1-.45-1-1A1,1,0,0,1,102.23,120.4Z\" style=\"fill:#263238\">\u003C/path>\u003Cpath d=\"M221.24,171.68a4.24,4.24,0,0,1-3.19-1.56,4.16,4.16,0,0,1,.67-6,3,3,0,0,0,1.7-2.75c.08-.49.32-.73.74-.73s.7.31.7.63v.29a4.41,4.41,0,0,1-2.44,3.81,2.92,2.92,0,0,0-.92,2.15,2.83,2.83,0,0,0,1.66,2.51,4.33,4.33,0,0,0,1.18.22,2.81,2.81,0,0,0,2.55-1.74l.27-1.26a.81.81,0,0,1,.62-.4c.49.11.74.34.74.7a4.29,4.29,0,0,1-2,3.48A4.85,4.85,0,0,1,221.24,171.68Zm0-12.07h-.15c-.43,0-.74-.27-.92-.81v-.25a1,1,0,0,1,1-.93c.63.14.95.46.95,1A1,1,0,0,1,221.27,159.61Z\" style=\"fill:#263238\">\u003C/path>\u003C/g>\u003Cg id=\"Character\">\u003Cpath d=\"M195.18,126.18s5.33-4.16,1.62-9.72-22.21-6.25-35.41-.23-12,13.89-10.87,16.43,2.77,5.79,2.77,5.79v7.87s-.69,4.63-8.56,10.41S130.84,172,132.46,179s6.72,7.18,2.55,12.5-18.52,8.79-19.44,19.9,2.31,27.55,26.15,30.09,33.56-5.78,45.36-20.37,14.58-25.69,13.66-38.42-7.18-14.58-6.94-22.45,11.1-20.59,8.33-28.46S195.18,126.18,195.18,126.18Z\" style=\"fill:#263238;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpath d=\"M174.35,163.68s1.86,7.17.47,10.64-5.33,4.86-13.66,8.1-9.72,12-6.48,19.21,14.35,25,12.73,28.93-18,16.67-18.28,34.95,10,42.82,10,42.82h36.34s3.93-75,3.93-82.16-.46-8.1,2.31-12c0,0,15.51,17.82,19.68,16.43s26.38-46.29,26.38-46.29a55.55,55.55,0,0,0,7.87-5.78c3.24-3,5.09-4.63,4.17-7.87a5,5,0,0,0-3.71-3.7s6-10.19,5.1-11.34-2.78.46-4.63,4.16-5.33,6.95-8.34,13-3.7,7.87-3.7,7.87S225.27,206.49,223,209a23.53,23.53,0,0,1-3,3s-5.79-7-9.72-12.73-4.4-7.64-7.87-10.65-15.28-9.72-16.9-11.11-.23-9.72-.23-9.72Z\" style=\"fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpath d=\"M262.77,169.69a2.4,2.4,0,0,1,.92,3.24c-.92,2.32-4.63,3.94-5.32,3S262.77,169.69,262.77,169.69Z\" style=\"fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpath d=\"M260.91,166.22s3.71.93,1.86,3.47-5.33,6-6,5.33,1.16-3.24,1.39-4.17A34.78,34.78,0,0,1,260.91,166.22Z\" style=\"fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpath d=\"M257,168.31s-3,4.62-1.85,5.32,3.93-2.32,5.32-5.09S258.83,165.07,257,168.31Z\" style=\"fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpath d=\"M248.42,178.72s3.24-1.85,4.16-3.93a7,7,0,0,0,0-4.63s4.17-.93,5.09-.93,2.09-1.39,1.86-3-6.72.23-9,.7-2.32,5.78-2.32,5.78L245.87,179\" style=\"fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpath d=\"M198,305s.86,13.23-2,22c-1.73,5.29-7.81,46.71-8.5,55.2-.79,9.68-1.27,23.8.27,27.95,1.18,3.18,10.7,16.26,14.63,18.1,1.19.56.39,2.54-.92,2.7a30.09,30.09,0,0,1-11.1-1.38c-3.63-1.28-5.3-6.48-8.92-8.19s-9-1.28-7-5.8,3.44-8.31,3.44-8.31-.14-7-5-46.14c-1.18-9.42,5.67-30.13,5.67-35.13s-3-20.5-3-20.5Z\" style=\"fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpolygon points=\"178.88 426.09 180.25 425.48 181.88 421.33 179.24 420.7 178.88 426.09\" style=\"fill:#949de3;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/polygon>\u003Cpolygon points=\"174.26 418.21 176.4 425.39 178.88 426.09 179.66 420.4 174.26 418.21\" style=\"fill:#949de3;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/polygon>\u003Cpath d=\"M202.4,428.25c-.76-.75-3.15-2.24-4.09-3.4a15.33,15.33,0,0,1-6.24.34c-4.16-1.08-5.89-6.1-9.35-9a69.73,69.73,0,0,1-6-5.71l-.12-.05c-.58,1.42-1.34,3.22-2.21,5.19-2,4.52,3.41,4.08,7,5.8s5.29,6.91,8.92,8.19a30.09,30.09,0,0,0,11.1,1.38A1.59,1.59,0,0,0,202.4,428.25Z\" style=\"fill:#949de3;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpath d=\"M182,294.75s-.25,25.64-1.2,33c-.89,6.88-3.94,24.47-19.75,51.18-5.3,9-13.69,27.24-13.69,31.24.21,1.63,2.27,9.55,4.81,12.83,3.9,5.05,6.66,7.61,4.76,8.56s-8.64-.76-12.92-3.13c-3.73-2.08-6.21-7.43-9.06-11.23s-1-6.19,2-8.69,4.38-9.72,5.38-12.22,8.5-42.81,11.25-51.09A99.59,99.59,0,0,1,161.76,328l-5-32.5Z\" style=\"fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpolygon points=\"136 426.1 137.89 425.73 139.39 421.58 136.88 419.57 136 426.1\" style=\"fill:#949de3;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/polygon>\u003Cpolygon points=\"133.74 413.41 133.74 425.35 136 426.1 136.88 419.57 133.74 413.41\" style=\"fill:#949de3;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/polygon>\u003Cpath d=\"M151.13,424.54c-2.18.67-5.71.16-9.75-3.7-3.56-3.41-5.2-10-5.45-11.46-2.49,2.11-3.52,4.47-1,7.83,2.85,3.8,5.33,9.15,9.06,11.23,4.28,2.37,11,4.08,12.92,3.13s-.71-3.4-4.15-7.77A7,7,0,0,1,151.13,424.54Z\" style=\"fill:#949de3;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpath d=\"M210.23,199.32c-3.94-5.79-4.4-7.64-7.87-10.65a89.66,89.66,0,0,0-8.79-5.94,14.08,14.08,0,0,1-12.5,9.18c-9,.82-12.23-7.29-13.33-12.1-1.8.77-4,1.6-6.58,2.61-8.33,3.24-9.72,12-6.48,19.21s14.35,25,12.73,28.93-18,16.67-18.28,34.95,8.75,51.82,8.75,51.82L200,317s3.51-19.17,3-33.17c-.49-13.76-4.46-36.15-4.51-36.8.5-10.48.85-18.71.85-20.86,0-7.18-.46-8.1,2.31-12,0,0,2.58,3,5.92,6.38l8.62-13.12C214.33,205,212.08,202,210.23,199.32Z\" style=\"fill:#949de3;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpath d=\"M201.66,214.13s4.4-8.33,1.86-14.58\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpath d=\"M182.64,283.53c.18,2,.31,4,.36,6\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpath d=\"M174.5,250a134.49,134.49,0,0,1,7.68,29.48\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpath d=\"M192.5,279a83.85,83.85,0,0,1-8,20.5\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpath d=\"M160.24,182.65s-8.34,1.39-11.58,5.1S124.83,235,125.52,237.51s10.88,1.39,15.28-3,20.59-38.65,20.59-38.65\" style=\"fill:#949de3;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpath d=\"M151.55,215.87l-14.79-5.24c-5.89,12.44-11.61,25.52-11.24,26.88.69,2.54,10.88,1.39,15.28-3C142.81,232.49,147.28,224.23,151.55,215.87Z\" style=\"fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpath d=\"M132.23,225.24s35.88-6.25,37.5-6.71,9.48-9.26,10.18-9.49,7.17-1.16,10-.46,4.86,1.39,3.47,1.85a43.88,43.88,0,0,1-7.17.92,17.29,17.29,0,0,0-2.32.24s7.18,1.85,8.34,2.77,1.15,1.85-.24,1.85-8.79-1.38-8.79-1.38,9.26,4.16,8.79,4.86-2.08.46-4.16,0a31.06,31.06,0,0,1-5.33-2.09s5.56,5.79,3.94,6-1.85-.46-3-1.85a15.48,15.48,0,0,0-3.93-2.78s-2.32,4.4-5.79,5.32a17.22,17.22,0,0,1-6.94.24s-20.14,10.64-26.39,12.73S128.07,241,126,238.66s3-10.18,3-10.18\" style=\"fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpath d=\"M166.49,147.48s-1.86-3.24-3.24-1.16-1.16,6,.92,8.56,6,1.39,6,1.39,2.31,8.8,6.48,11.8,12.5,3.24,16.66-1.38,4.4-14.59,3.71-23.38-4.86-13.19-4.86-13.19-9.73,7.63-14.59,9.49a51.17,51.17,0,0,1-9.72,2.54Z\" style=\"fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpath d=\"M190.17,158.82a6.2,6.2,0,0,1-6.24-1.14\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Crect x=\"153.29\" y=\"138.45\" width=\"18.75\" height=\"7.87\" style=\"fill:#949de3;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/rect>\u003Crect x=\"167.18\" y=\"138.68\" width=\"37.49\" height=\"15.51\" rx=\"3\" style=\"fill:#949de3;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/rect>\u003Crect x=\"173.2\" y=\"138.68\" width=\"35.4\" height=\"15.51\" rx=\"3\" style=\"fill:#949de3\">\u003C/rect>\u003Cg style=\"clip-path:url(#clip-path)\">\u003Crect x=\"173.2\" y=\"138.68\" width=\"35.4\" height=\"15.51\" rx=\"3\" style=\"opacity:0.30000000000000004\">\u003C/rect>\u003C/g>\u003Crect x=\"173.2\" y=\"138.68\" width=\"35.4\" height=\"15.51\" rx=\"3\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/rect>\u003C/g>\u003Cg id=\"Options\">\u003Crect x=\"245.22\" y=\"131\" width=\"51.51\" height=\"49.39\" rx=\"7.18\" style=\"fill:#949de3;opacity:0.6000000000000001\">\u003C/rect>\u003Cline x1=\"237.09\" y1=\"158.65\" x2=\"237.09\" y2=\"152.44\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/line>\u003Cpath d=\"M267.17,189.06h-22.9a7.18,7.18,0,0,1-7.18-7.18V161.42\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cline x1=\"279.52\" y1=\"189.06\" x2=\"272.07\" y2=\"189.06\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/line>\u003Cpath d=\"M304.85,145v36.85a7.18,7.18,0,0,1-7.18,7.18H284.42\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Cpath d=\"M248.24,122.33h49.43a7.18,7.18,0,0,1,7.18,7.18v8.92\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/path>\u003Crect x=\"241.87\" y=\"127.79\" width=\"58.21\" height=\"55.82\" rx=\"7.18\" style=\"fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round\">\u003C/rect>\u003Crect x=\"316.53\" y=\"127.79\" width=\"58.21\" height=\"55.82\" rx=\"7.18\" style=\"fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;opacity:0.5\">\u003C/rect>\u003Crect x=\"241.87\" y=\"200.45\" width=\"58.21\" height=\"55.82\" rx=\"7.18\" style=\"fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;opacity:0.5\">\u003C/rect>\u003Crect x=\"316.53\" y=\"200.45\" width=\"58.21\" height=\"55.82\" rx=\"7.18\" style=\"fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;opacity:0.5\">\u003C/rect>\u003Crect x=\"319.88\" y=\"131\" width=\"51.51\" height=\"49.39\" rx=\"7.18\" style=\"fill:#949de3\">\u003C/rect>\u003Crect x=\"245.22\" y=\"203.67\" width=\"51.51\" height=\"49.39\" rx=\"7.18\" style=\"fill:#949de3\">\u003C/rect>\u003Crect x=\"319.88\" y=\"203.67\" width=\"51.51\" height=\"49.39\" rx=\"7.18\" style=\"fill:#949de3\">\u003C/rect>\u003Cpath d=\"M271,146.51H271c.38.08.56.24.56.49v15.88q-.1.6-.57.6h0c-.41-.08-.62-.24-.62-.48V147.91a9.87,9.87,0,0,1-1.93.54q-.33,0-.48-.57v-.2c0-.29.55-.55,1.63-.77Z\" style=\"fill:#263238\">\u003C/path>\u003Cpath d=\"M344.63,146.52a5,5,0,0,1,5,5,6.12,6.12,0,0,1-2.28,4.41l-5.58,6.39h7.56c.29,0,.46.2.53.59s-.25.6-.58.6h-8.94c-.39-.08-.59-.27-.59-.58v-.05c0-.2.26-.55.79-1l7.19-8.19a3.69,3.69,0,0,0-3-5.85h-.14a3.66,3.66,0,0,0-3.53,2.6,6.24,6.24,0,0,0-.2,1.21c-.14.29-.31.43-.52.43h-.07c-.39-.07-.59-.25-.59-.52a5,5,0,0,1,2.48-4.27A5.3,5.3,0,0,1,344.63,146.52Z\" style=\"fill:#263238\">\u003C/path>\u003Cpath d=\"M270.28,219.24a4.13,4.13,0,0,1,3.29,1.72,3.79,3.79,0,0,1,.77,2.3v.18a4.55,4.55,0,0,1-1.85,3.39,5.36,5.36,0,0,1,2.58,4.36,4.93,4.93,0,0,1-4.9,4.95H270a5,5,0,0,1-4.51-3,6.07,6.07,0,0,1-.39-2c0-.26.23-.43.68-.52.27,0,.44.21.5.63a3.78,3.78,0,0,0,2.27,3.39,4.67,4.67,0,0,0,1.59.31,3.66,3.66,0,0,0,3.41-2.35,3.87,3.87,0,0,0,.26-1.24V231a3.65,3.65,0,0,0-2.37-3.32l-1.48-.32a.64.64,0,0,1-.3-.5v-.05c0-.38.31-.56.94-.56a2.93,2.93,0,0,0,2.14-1.35,3.7,3.7,0,0,0,.42-1.59,2.8,2.8,0,0,0-1.63-2.57,2.87,2.87,0,0,0-4.08,1.76,6.57,6.57,0,0,1-.16,1.1c-.22.25-.38.37-.48.37-.43-.1-.65-.26-.65-.48v-.23a4,4,0,0,1,2.24-3.56A4.55,4.55,0,0,1,270.28,219.24Z\" style=\"fill:#263238\">\u003C/path>\u003Cpath d=\"M347.37,219.32h.28q.28,0,.48.51l-.05.41v9.52h1.75l.41,0c.26,0,.45.22.55.65,0,.25-.17.44-.52.57l-.63-.05h-1.56v4.78c0,.23-.2.39-.6.47h0c-.4-.07-.6-.26-.6-.56v-4.69h-6.52l-1,.05c-.29-.12-.44-.29-.44-.52v-.19c0-.11.12-.27.38-.46q7.39-9.63,7.79-10.25A.51.51,0,0,1,347.37,219.32Zm-6.61,10.44h6.13v-8Z\" style=\"fill:#263238\">\u003C/path>\u003C/g>\u003C/svg>\n\u003C/div>","tags":"","title":"image_VR_lady","modified":"20251008100904601"},
{"created":"20240208102607476","text":"Every 3D object, material or camera can be \u003Cb>adressed\u003C/b> by URI fragments (`#myobject` e.g.) which are **derived from the 3D scene objectnames** (implicit metadata).\u003Cbr>\nThese are inferred at runtime from the 3D scene-nodes (object names, object metadata etc).\u003Cbr>\u003Cbr>\nFree fragments and features generated for you..How great is that? π\n\u003Cbr>\n\u003Cbr>\n\u003Cpre>\n\u003Ccode>\n my.io/scene.usdz Embeddable as:\n +βββββββββββββββββββββββββββββ+\n β sky β src: http://my.io/scene.udsz#sky (includes building,mainobject,floor)\n β +βββββββββββββββββββββββββ+ β \n β β building β β src: http://my.io/scene.udsz#building (includes mainobject,floor)\n β β +βββββββββββββββββββββ+ β β\n β β β mainobject β β β src: http://my.io/scene.udsz#mainobject (includes floor)\n β β β +βββββββββββββββββ+ β β β\n β β β β floor β β β β src: http://my.io/scene.udsz#floor (just floor object)\n β β β β β β β β\n β β β +βββββββββββββββββ+ β β β href: http://my.io/scene.udsz#-mainobject (hides mainobject when clicked)\n β β +βββββββββββββββββββββ+ β β\n β +βββββββββββββββββββββββββ+ β\n +βββββββββββββββββββββββββββββ+\n\u003C/code>\n\u003C/pre>\n\n\n> Fragments (`#building` e.g.) allow for very convenient, guess-able [filters](#filters) to reference/show/hide objects within a 3D scene.\n\n\nFor more examples see [filters](#filters) and \u003Ca href=\"#π‘ by feature (heuristics)\">the reference-menu (by feature)\u003C/a>\n\n> Below is the related section of the spec (full spec here: \u003Ca href=\"doc/RFC_XR_Fragments.html\" target=\"_blank\">HTML\u003C/a>, \u003Ca href=\"doc/RFC_XR_Fragments.txt\" target=\"_blank\">TXT\u003C/a>)\n\n\u003Cbr>\n\u003Ciframe src=\"doc/RFC_XR_Fragments.html#fragment-to-metadata-mapping\" frameborder=\"0\" class=\"spec\">\u003C/iframe>\n","tags":"[[π level1: URL]] level1","title":"implicit deeplinks","modified":"20260324142324129","type":"text/markdown"},