╭ index.html ───────────────────────────────────────────────────╮ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╰───────────────────────────────────────────────────────────────╯
╭────╮ ╭ clone ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╮ │http│ ssh │ │ ╰────╯ ╰ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╯
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="utf-8"> 5 <title>HAXY</title> 6 <style> 7 html { 8 background-color: rgba(0, 50, 70, 1.0); 9 color: rgba(200, 200, 200, 1.0); 10 } 11 12 /* no body margin because it could push content past the viewport and 13 add a window scrollbar */ 14 body { 15 margin: 0; 16 } 17 18 @font-face { 19 font-family: '3270'; 20 src: url('/term.ttf') format('truetype'); 21 } 22 23 .page { 24 font-family: '3270', monospace; 25 font-size: 22px; 26 line-height: 22px; 27 position: relative; 28 } 29 30 #grid { 31 white-space: pre; 32 /* positioning context for the top-level .scroll divs */ 33 position: relative; 34 } 35 36 /* each web-native Scroll widget: a box positioned over its viewport 37 (left/top/width/height and per-axis overflow come inline, the latter 38 from the widget's scroll direction) */ 39 .scroll { 40 position: absolute; 41 /* scrollbars are hidden; panes scroll via wheel/trackpad and via 42 scrollIntoView on keyboard focus, so a visible bar would only 43 cover content. (Firefox / WebKit respectively.) */ 44 scrollbar-width: none; 45 } 46 .scroll::-webkit-scrollbar { 47 display: none; 48 } 49 50 /* render each colored cell-run as an inline-block to prevent 51 horizontal seams between rows of the block art. */ 52 #grid span { 53 display: inline-block; 54 vertical-align: top; 55 } 56 57 /* overlay elements share the grid's coordinate system since 58 their parent (.page) is the positioning ancestor and the 59 grid sits at its top-left. */ 60 .page input, 61 .page textarea, 62 .page button { 63 position: absolute; 64 font: inherit; 65 padding: 0; 66 margin: 0; 67 outline: none; 68 box-sizing: border-box; 69 } 70 71 .page input, 72 .page textarea { 73 color: inherit; 74 background: transparent; 75 border: none; 76 } 77 78 /* the TUI border cells own the frame, so the textarea can't be 79 drag-resized past them */ 80 .page textarea { 81 resize: none; 82 overflow-y: auto; 83 } 84 85 /* the TUI cells under the button render the border + label; 86 the overlay button stays transparent so they show through 87 and just owns the click + form-submit behavior. */ 88 .page button { 89 background: transparent; 90 color: transparent; 91 border: none; 92 cursor: pointer; 93 } 94 95 #grid a { 96 color: inherit; 97 text-decoration: none; 98 } 99 100 #grid .clickable { 101 cursor: pointer; 102 } 103 </style> 104 </head> 105 <body> 106 <div class="page"> 107 <div id="grid">{{{ HAXY_HTML }}}</div> 108 <div id="overlay">{{{ HAXY_OVERLAY }}}</div> 109 </div> 110 <script id="page-data" type="application/json">{{{ HAXY_JSON }}}</script> 111 <script src="/script.js"></script> 112 </body> 113 </html> 114