mirror of
https://github.com/urbit/shrub.git
synced 2024-12-30 15:44:03 +03:00
2d3e803704
- only resize when necessary (check the container's height) - refactor CSS: use position relative / absolute to stack Buffers instead of display:none; this affects the calcuations used by fit() - fix dark mode styles, tweak viewport height (100vh --> 99vh) to prevent overflow scroller
140 lines
3.7 KiB
HTML
140 lines
3.7 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<title>Terminal</title>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport"
|
|
content="width=device-width, initial-scale=1, shrink-to-fit=no,maximum-scale=1"/>
|
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
<meta name="apple-touch-fullscreen" content="yes" />
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
|
|
<!--<link rel="apple-touch-icon" href="/~landscape/img/touch_icon.png">
|
|
<link rel="icon" type="image/png" href="/~landscape/img/Favicon.png">-->
|
|
<link rel="manifest"
|
|
href='data:application/manifest+json,{
|
|
"name": "Terminal",
|
|
"short_name": "Terminal",
|
|
"description": "A%20terminal%20for%20your%20Urbit.",
|
|
"display": "standalone",
|
|
"background_color": "%23FFFFFF",
|
|
"theme_color": "%23000000"}' />
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro&display=swap" rel="stylesheet">
|
|
<style>
|
|
body, #root {
|
|
height: 99vh; /* prevent scrollbar on outer frame */
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
.buffer-container {
|
|
height: calc(100% - 40px);
|
|
position: relative;
|
|
}
|
|
|
|
.terminal-container {
|
|
position: absolute;
|
|
top: 0;
|
|
}
|
|
|
|
div.header {
|
|
display: grid;
|
|
grid-template-areas: "tabs info";
|
|
grid-template-columns: auto min-content;
|
|
grid-template-rows: auto;
|
|
}
|
|
|
|
div.info {
|
|
grid-area: info;
|
|
}
|
|
|
|
div.tabs {
|
|
grid-area: tabs;
|
|
height: 40px;
|
|
display: flex;
|
|
flex-flow: row nowrap;
|
|
justify-content: flex-start;
|
|
padding: 5px 5px 0 5px;
|
|
border-bottom: 1px solid black;
|
|
background-color: white;
|
|
}
|
|
|
|
div.tabs > * {
|
|
margin-left: 5px;
|
|
margin-right: 5px;
|
|
border: solid 1px black;
|
|
padding: 10px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
div.tab, button.tab {
|
|
margin-bottom: -1px; /** To overlay the selected tab on the tabs container bottom border */
|
|
border-top-left-radius: 5px;
|
|
border-top-right-radius: 5px;
|
|
font-family: monospace;
|
|
font-size: 14px;
|
|
line-height: 18px;
|
|
}
|
|
|
|
div.tabs > div.selected {
|
|
border-bottom: white solid 1px;
|
|
}
|
|
|
|
div.tabs > div.selected > a.session-name {
|
|
font-weight: bold;
|
|
}
|
|
|
|
div.tabs > a.delete-session {
|
|
padding: 5px;
|
|
}
|
|
|
|
button.info-btn {
|
|
border: none;
|
|
border-bottom: solid black 1px;
|
|
background: transparent;
|
|
padding: 10px;
|
|
line-height: 10px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
html {
|
|
background-color: rgb(26,26,26);
|
|
}
|
|
|
|
div.tabs {
|
|
background-color: rgb(26, 26, 26);
|
|
color: rgba(255, 255, 255, 0.9);
|
|
border-bottom-color: rgba(255, 255, 255, 0.9);
|
|
}
|
|
|
|
div.tab {
|
|
background-color: rgb(26, 26, 26);
|
|
color: rgba(255, 255, 255, 0.9);
|
|
border-color: rgba(255, 255, 255, 0.9);
|
|
}
|
|
|
|
button.tab {
|
|
background-color: rgb(42, 42, 42);
|
|
color: rgba(255, 255, 255, 0.9);
|
|
border-color: rgba(255, 255, 255, 0.9);
|
|
}
|
|
|
|
div.tabs > div.selected {
|
|
border-bottom: rgb(26,26,26) solid 1px;
|
|
}
|
|
|
|
button.info-btn {
|
|
border-bottom: solid rgba(255, 255, 255, 0.9) 1px;
|
|
background: rgb(26, 26, 26);
|
|
}
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div id="root"></div>
|
|
<script src="/session.js"></script>
|
|
</body>
|
|
</html>
|