Spaces:
Sleeping
Sleeping
<html> | |
<head> | |
{%if is_space %} | |
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> | |
{% endif %} | |
<style> | |
/* Reset some default styles */ | |
body, h1, h2, h3, p, ul { | |
margin: 0; | |
padding: 0; | |
} | |
body { | |
font-family: 'Arial', sans-serif; | |
overflow-y: hidden; | |
} | |
.sidebar { | |
position: absolute; | |
top: 0; | |
left: 0; | |
height: 100vh; | |
max-height: calc(100vh - 50px); | |
width: 300px; | |
overflow-y: scroll; | |
overflow-x: hidden; | |
font-size: 0.875rem; /* 14px */ | |
line-height: 1.25rem; /* 20px */ | |
transition: width 0.3s ease; | |
} | |
.sidebar.collapsed { | |
width: 0; | |
} | |
.sidebar a { | |
display: block; | |
padding: 8px 16px; | |
text-decoration: none; | |
color: rgb(107 114 128); | |
} | |
.sidebar a:hover { | |
color: black; | |
transform: translateX(1px); | |
} | |
/* Apply a different style to the selected item in the sidebar */ | |
.sidebar a.active { | |
background-color: rgb(251 146 60); | |
color: white; | |
border-radius: 0.75rem; | |
font-weight: bold; | |
} | |
/* Styling for the close button */ | |
.close-btn { | |
cursor: pointer; | |
border: none; | |
background-color: white; | |
font-size: xx-large; | |
position: relative; | |
} | |
/* Styling for the content */ | |
.content { | |
margin-left: 300px; | |
padding: 20px; | |
display: block; | |
height: 100vh; | |
transition: margin-left 0.3s ease; | |
} | |
.content.collapsed { | |
margin-left: 0; | |
} | |
/* Make the iframe responsive */ | |
.content iframe { | |
width: 100%; | |
border: 0; | |
height: 100%; | |
} | |
@media only screen and (max-width: 600px) { | |
/* Adjust styles for smaller screens */ | |
.sidebar { | |
width: 100%; | |
position: relative; | |
height: auto; | |
} | |
.content { | |
margin-left: 0; | |
} | |
} | |
</style> | |
<script src="//unpkg.com/alpinejs" defer></script> | |
</head> | |
<body x-data="{ current_demo: '{{ initial_demo }}', is_collapsed: false }"> | |
<div style="display: flex; flex-direction: column;"> | |
<div> | |
<button @click="is_collapsed = !is_collapsed" class="close-btn"> | |
<a x-text="is_collapsed ? '➡️' : '⬅️'"></a> | |
</button> | |
</div> | |
<div :class="{ 'sidebar': true, 'collapsed': is_collapsed }" style="margin-top: 50px;"> | |
{% for name in names %} | |
<a @click="current_demo = '{{ name[0] }}'" :class="current_demo == '{{ name[0] }}' ? 'active' : ''">{{ name[0] }} {% if name[1] %}❌{% endif %}</a> | |
{% endfor %} | |
</div> | |
</div> | |
<div :class="{ 'content': true, 'collapsed': is_collapsed }"> | |
<iframe :src="`/demo/${current_demo}${document.location.search}`"></iframe> | |
</div> | |
</body> | |
</html> |