diff --git a/flake.nix b/flake.nix index aa2221f..474b726 100644 --- a/flake.nix +++ b/flake.nix @@ -31,6 +31,7 @@ toolchain ]; shellHook = '' + source $(pwd)/.env.dev export CARGO_HOME=$(pwd)/.cargo ''; }; diff --git a/src/service/http_tpl/base.html b/src/service/http_tpl/base.html index 1bb0c8a..be24126 100644 --- a/src/service/http_tpl/base.html +++ b/src/service/http_tpl/base.html @@ -15,34 +15,21 @@ --> - - - - - - + -
-
+

Domiply

The universal, zero-authentication hosting service
-
+ -
+
{{> (lookup this "page_name")}} -
-
+ diff --git a/src/service/http_tpl/static/bamboo.css b/src/service/http_tpl/static/bamboo.css new file mode 100644 index 0000000..f3de6ae --- /dev/null +++ b/src/service/http_tpl/static/bamboo.css @@ -0,0 +1 @@ +:root{--b-font-main: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--b-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--b-txt: #2e3440;--b-bg-1: #fff;--b-bg-2: #eceff4;--b-line: #eceff4;--b-link: #bf616a;--b-btn-bg: #242933;--b-btn-txt: #fff;--b-focus: #88c0d0}@media(prefers-color-scheme: dark){:root{--b-txt: #eceff4;--b-bg-1: #2e3440;--b-bg-2: #3b4252;--b-line: #3b4252}}*,::before,::after{box-sizing:border-box}html:focus-within{scroll-behavior:smooth}body{max-width:70ch;padding:0 1rem;margin:auto;background:var(--b-bg-1);font-family:var(--b-font-main);text-rendering:optimizeSpeed;line-height:1.5;color:var(--b-txt);-moz-tab-size:4;tab-size:4;word-break:break-word;overflow-wrap:break-word;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:100%}h1,h2,h3,h4,h5,h6,p,ul,ol,dl,dd,details,blockquote,pre,figure,table,address,hr,fieldset,iframe,audio,video{margin:0 0 1.5rem}h1,h2,h3,h4,h5,h6{line-height:1.25;margin-top:2rem}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1rem}h5{font-size:.875rem}h6{font-size:.75rem}a{color:var(--b-link);text-decoration:none}a:hover{text-decoration:underline}img,video,svg{max-width:100%;height:auto}embed,iframe,object{max-width:100%}iframe{border-style:none}abbr[title]{text-decoration:underline dotted}b,strong{font-weight:bolder}blockquote{margin-left:0;padding:.5rem 0 .5rem 1.5rem;border-left:.25rem solid var(--b-txt)}blockquote>:last-child{margin-bottom:0}small{font-size:.875rem}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}hr{height:0;border:0;border-bottom:1px solid var(--b-line)}pre,code,kbd,samp,tt,var{background:var(--b-bg-2);border-radius:.25rem;padding:.125rem .25rem;font-family:var(--b-font-mono);font-size:.875rem}pre{padding:1rem;overflow:auto;white-space:pre}pre code{padding:0}details{display:block;padding:.5rem 1rem;background:var(--b-bg-2);border:1px solid var(--b-line);border-radius:.25rem}details>:last-child{margin-bottom:0}details[open]>summary{margin-bottom:1.5rem}summary{display:list-item;cursor:pointer;font-weight:bold}summary:focus{box-shadow:none}table{border-collapse:collapse;width:100%;text-indent:0}table caption{margin-bottom:.5rem}tr{border-bottom:1px solid var(--b-line)}td,th{padding:.5rem 0 .5rem 1rem;word-break:normal}td:first-child,th:first-child{padding-left:0}th{text-align:left}ul,ol,dd{padding-left:2rem}li>ul,li>ol{margin-bottom:0}fieldset{padding:.5rem .75rem;border:1px solid var(--b-line);border-radius:.25rem}legend{padding:0 .25rem}label{cursor:pointer;display:block;margin-bottom:.25rem}button,input,select,textarea{margin:0;padding:.5rem .75rem;max-width:100%;background:var(--b-bg-2);border:0;border-radius:.25rem;font:inherit;line-height:1.125;color:var(--b-txt)}button,select{text-transform:none}select,input:not([size]):not([type=button i]):not([type=submit i]):not([type=reset i]):not([type=checkbox i]):not([type=radio i]){width:100%}[type=color i]{min-height:2.125rem}select:not([multiple]):not([size]){padding-right:1.5rem;background-repeat:no-repeat;background-position:right .5rem center;-moz-appearance:none;-webkit-appearance:none;appearance:none}textarea{width:100%;resize:vertical}textarea:not([rows]){height:8rem}button,[type=button i],[type=submit i],[type=reset i]{-webkit-appearance:button;display:inline-block;text-align:center;white-space:nowrap;background:var(--b-btn-bg);color:var(--b-btn-txt);border:0;cursor:pointer;transition:opacity .25s}button:hover,[type=button i]:hover,[type=submit i]:hover,[type=reset i]:hover{opacity:.75}button[disabled],[type=button i][disabled],[type=submit i][disabled],[type=reset i][disabled]{opacity:.5}progress{vertical-align:baseline}[type=search i]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-input-placeholder{color:inherit;opacity:.5}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}[aria-busy=true i]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled=true i],[disabled]{cursor:not-allowed}:focus,details:focus-within{outline:none;box-shadow:0 0 0 2px var(--b-focus)}@media(prefers-reduced-motion: reduce){html:focus-within{scroll-behavior:auto}*,::before,::after{animation-delay:-1ms !important;animation-duration:1ms !important;animation-iteration-count:1 !important;background-attachment:initial !important;scroll-behavior:auto !important;transition-delay:0 !important;transition-duration:0 !important}}select:not([multiple]):not([size]){background-image:url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%232e3440'%3E%3Cpath d='M5 6l5 5 5-5 2 1-7 7-7-7 2-1z'/%3E%3C/svg%3E")}@media(prefers-color-scheme: dark){select:not([multiple]):not([size]){background-image:url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23eceff4'%3E%3Cpath d='M5 6l5 5 5-5 2 1-7 7-7-7 2-1z'/%3E%3C/svg%3E")}} diff --git a/src/service/http_tpl/static/concrete.css b/src/service/http_tpl/static/concrete.css deleted file mode 100644 index 9159d09..0000000 --- a/src/service/http_tpl/static/concrete.css +++ /dev/null @@ -1,400 +0,0 @@ -/*! concrete.css v2.0.3 | MIT License | github.com/louismerlin/concrete.css */ - -/** - * 1. Modify the base font-size to 62.5% so that 1.6rem = 16px. - * 2. Set box-sizing globally to handle padding and border widths. - */ - -html { - font-size: 62.5%; /* 1 */ - box-sizing: border-box; /* 2 */ -} - -/** - * 1. Continue the global box-sizing modification. - * 2. Set the underline size for all elements. - */ - -*, ::after, ::before { - box-sizing: inherit; /* 1 */ - text-decoration-thickness: .2rem; /* 2 */ -} - -/** - * 1. Set global font size to 2rem (20px) with a normal weight. - * 2. Set the text and background color to white and black by default. - * 3. Set the font-family to Helvetica, or equivalent. - */ - -body { - font-size: 2rem; /* 1 */ - font-weight: 400; /* 1 */ - background: #fff; /* 2 */ - color: #111; /* 2 */ - font-family: Helvetica, Arial, sans-serif; /* 3 */ -} - -/** - * Set the link color to black - */ - -a { - color: #111; -} - -/** - * 1. Set the max width of images to 100%, so that they don't overflow. - * 2. Set the height of images relative to their width. - */ - -img { - max-width: 100%; /* 1 */ - height: auto; /* 2 */ -} - -/** - * 1. Center the main element horizontally. - * 2. Set the width of the element to 640px, with padding for mobile screens. - */ - -main { - margin: auto; /* 1 */ - max-width: 66rem; /* 2 */ - padding: 0 1rem; /* 2 */ - width: 100%; /* 2 */ -} - -/** - * 1. Add some padding around the header. - * 2. Increase the size of text in the header. - */ - -header { - padding: 16rem 0; /* 1 */ - font-size: 1.2em; /* 2 */ -} - -/** - * Center the text in the footer. - */ - -footer { - text-align: center; -} - -/** - * Add some padding around the sections. - */ - -section { - padding: 4rem 0; -} - -/** - * 1. Change the style of the button. - * 2. Set the color and border of the button. - * 3. Add the pointer cursor when hovering a button. - */ - -button, -input[type="button"], -input[type="reset"], -input[type="submit"] { - display: inline-block; /* 1 */ - vertical-align: middle; /* 1 */ - padding: .4rem 1rem; /* 1 */ - font-size: 2rem; /* 1 */ - font-weight: normal; /* 1 */ - margin-bottom: 1rem; /* 1 */ - background: #fff; /* 2 */ - color: #111; /* 2 */ - border: .2rem solid #111; /* 2 */ - border-radius: 0; /* 2 */ - cursor: pointer; /* 3 */ -} - -/** - * 1. Invert the colors of the disabled button. - * 2. Add the not-allowed cursor when hovering a disabled button. - */ - -button:disabled, -input[type="button"]:disabled, -input[type="reset"]:disabled, -input[type="submit"]:disabled{ - color: #fff; /* 1 */ - background: #111; /* 1 */ - cursor: not-allowed; /* 2 */ -} - -/** - * Set the list bullet to square. - */ - -ul { - list-style: square; -} - -/** - * Set the border around a fieldset. - */ - -fieldset { - border: .2rem solid #111; -} - -/** - * 1. Modify the display of labels and legends. - * 2. Add a margin underneath. - */ - -label, legend { - display: block; /* 1 */ - font-weight: bold; /* 1 */ - margin-bottom: .8rem; /* 2 */ -} - -/** - * 1. Change the appearance of the text input. - * 2. Set the color and border of the text input. - */ - -input[type="email"], -input[type="number"], -input[type="password"], -input[type="search"], -input[type="tel"], -input[type="text"], -input[type="url"], -textarea, -select { - -webkit-appearance: none; /* 1 */ - -moz-appearance: none; /* 1 */ - appearance: none; /* 1 */ - box-shadow: none; /* 1 */ - box-sizing: inherit; /* 1 */ - padding: .4rem 1rem; /* 1 */ - width: 100%; /* 1 */ - font-size: 2rem; /* 1 */ - color: #111; /* 2 */ - background-color: #fff; /* 2 */ - border: .2rem solid #111; /* 2 */ - border-radius: 0; /* 2 */ -} - -/** - * Set margin for form elements. - */ - -fieldset, input, select, textarea { - margin: 0 0 1.6rem 0; -} - -/** - * 1. Set the font color for the placeholder in inputs. - * 2. Set font-style to italic for the placeholder in inputs. - */ - -input::placeholder, -textarea::placeholder { - color: #111; /* 1 */ - font-style: italic; /* 2 */ -} - -/** - * 1. Expand width to 100% for the table element. - * 2. Remove the distance between the borders of adjacent table cells. - */ - -table { - width: 100%; /* 1 */ - border-spacing: 0; /* 2 */ -} - -/** - * Add padding around table cells. - */ - -td, th { - padding: .8rem; -} - -/** - * Remove left padding for first cell in a row. - */ - -td:first-child, th:first-child { - padding-left: 0; -} - -/** - * Remove right padding for last cell in a row. - */ - -td:last-child, th:last-child { - padding-right: 0; -} - -/** - * 1. Add a border under the table header. - * 2. Align the text to the left in the table header. - */ - -th { - border-bottom: .2rem solid #111; /* 1 */ - text-align: left; /* 2 */ -} - -/** - * Add a thiner border under table rows. - */ - -td { - border-bottom: .1rem solid #111; -} - -/** - * 1. Change the margins and padding. - * 2. Add a border on the left of these elements. - * 3. Set the y overflow to hidden to hide the navigation bar. - */ - -blockquote, pre { - margin-left: 0; /* 1 */ - margin-right: 0; /* 1 */ - padding: 1rem 1.6rem; /* 1 */ - border-left: .2rem solid #111; /* 2 */ - overflow-y: hidden; /* 3 */ -} - -/** - * 1. Set the rest of the border of the preformatted element to dotted. - * 2. Re-set the left border style. - */ - -pre { - border: 0.1rem dotted #111; - border-left: 0.2rem solid #111; -} - -/** - * 1. Modify the display of the code block. - * 2. Reduce the font size of the code block. - */ - -pre > code { - white-space: pre; /* 1 */ - display: block; /* 1 */ - font-size: 1.6rem; /* 2 */ -} - -/** - * 1. Modify the display of the progress bar in all browsers. - * 2. Set the colors and border of the progress bar. - */ - -progress { - -moz-appearance: none; /* 1 */ - -webkit-appearance: none; /* 1 */ - display: block; /* 1 */ - height: 1rem; /* 1 */ - overflow: hidden; /* 1 */ - padding: 0; /* 1 */ - width: 100%; /* 1 */ - background: #fff; /* 2 */ - color: #111; /* 2 */ - border: .2rem solid #111; /* 2 */ - border-radius: 0; /* 2 */ -} - -/** - * Set the background color of the webkit progress bar. - */ - -progress::-webkit-progress-bar { - background-color: #fff; -} - -/** - * Set the color of the webkit progress bar. - */ - -progress::-webkit-progress-value { - background-color: #111; -} - -/** - * Set the color of the mozilla progress bar. - */ - -progress::-moz-progress-bar { - background-color: #111; -} - -/** - * Set the border for the horizontal rule. - */ - -hr { - border: .1rem solid #111; -} - -/** - * Invert the colors if the user has dark mode activated. - */ - -@media (prefers-color-scheme: dark) { - body { - background: #111; - color: #fff; - } - a, - input::placeholder, - textarea::placeholder { - color: #fff; - } - button, - input[type="button"], - input[type="reset"], - input[type="submit"], - input[type="email"], - input[type="number"], - input[type="password"], - input[type="search"], - input[type="tel"], - input[type="text"], - input[type="url"], - textarea, - select, - progress { - background: #111; - color: #fff; - border-color: #fff; - } - button:disabled, - input[type="button"]:disabled, - input[type="reset"]:disabled, - input[type="submit"]:disabled{ - color: #111; - background: #fff; - } - fieldset { - border-color: #fff; - } - td, - th, - blockquote, - pre, - hr { - border-color: #fff; - } - progress::-webkit-progress-bar { - background-color: #111; - } - progress::-webkit-progress-value { - background-color: #fff; - } - progress::-moz-progress-bar { - background-color: #fff; - } -} diff --git a/src/service/http_tpl/static/normalize.css b/src/service/http_tpl/static/normalize.css deleted file mode 100644 index 192eb9c..0000000 --- a/src/service/http_tpl/static/normalize.css +++ /dev/null @@ -1,349 +0,0 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ - -/* Document - ========================================================================== */ - -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in iOS. - */ - -html { - line-height: 1.15; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/* Sections - ========================================================================== */ - -/** - * Remove the margin in all browsers. - */ - -body { - margin: 0; -} - -/** - * Render the `main` element consistently in IE. - */ - -main { - display: block; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ - -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -pre { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Remove the gray background on active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * 1. Remove the bottom border in Chrome 57- - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ - -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ - -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -code, -kbd, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/** - * Add the correct font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove the border on images inside links in IE 10. - */ - -img { - border-style: none; -} - -/* Forms - ========================================================================== */ - -/** - * 1. Change the font styles in all browsers. - * 2. Remove the margin in Firefox and Safari. - */ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 1 */ - line-height: 1.15; /* 1 */ - margin: 0; /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ - -button, -input { /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ - -button, -select { /* 1 */ - text-transform: none; -} - -/** - * Correct the inability to style clickable types in iOS and Safari. - */ - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} - -/** - * Remove the inner border and padding in Firefox. - */ - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ - -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ - -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ - -legend { - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} - -/** - * Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ - -progress { - vertical-align: baseline; -} - -/** - * Remove the default vertical scrollbar in IE 10+. - */ - -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10. - * 2. Remove the padding in IE 10. - */ - -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ - -[type="search"] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/** - * Remove the inner padding in Chrome and Safari on macOS. - */ - -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* Interactive - ========================================================================== */ - -/* - * Add the correct display in Edge, IE 10+, and Firefox. - */ - -details { - display: block; -} - -/* - * Add the correct display in all browsers. - */ - -summary { - display: list-item; -} - -/* Misc - ========================================================================== */ - -/** - * Add the correct display in IE 10+. - */ - -template { - display: none; -} - -/** - * Add the correct display in IE 10. - */ - -[hidden] { - display: none; -}