diff --git a/config.toml b/config.toml index 091228c..d6b7064 100644 --- a/config.toml +++ b/config.toml @@ -29,3 +29,27 @@ enable_scanlines = true scanline_opacity = 0.08 terminal_font = "JetBrains Mono, monospace" body_font = "Inter, sans-serif" + +obsidian = "#0a0a0c" +surface_raised = "#121318" +border_color = "#27272a" +accent_cyan_hex = "#00f0ff" +github_org_url = "https://github.com/tars-cloud" +og_image = "/images/og-banner.png" +logo_path = "/images/tars-logo.svg" +status_label = "SYS // NOMINAL" + +[[extra.menu_items]] +name = "Docs" +url = "/docs/" +external = false + +[[extra.menu_items]] +name = "Downloads" +url = "/downloads/" +external = false + +[[extra.menu_items]] +name = "GitHub" +url = "https://github.com/tars-cloud" +external = true diff --git a/devenv.nix b/devenv.nix index 03c50b8..364d095 100644 --- a/devenv.nix +++ b/devenv.nix @@ -17,7 +17,7 @@ pkgs.jq ]; - scripts.build.exec = "zola build && pagefind --site public"; + scripts.build.exec = "tailwindcss -i styles/input.css -o static/css/custom.css --minify && zola build && pagefind --site public"; scripts.check.exec = "zola check"; scripts.serve.exec = "zola serve --drafts"; @@ -30,6 +30,7 @@ ''; enterTest = '' + tailwindcss -i styles/input.css -o static/css/custom.css --minify zola check zola build ''; diff --git a/static/css/custom.css b/static/css/custom.css new file mode 100644 index 0000000..e54864d --- /dev/null +++ b/static/css/custom.css @@ -0,0 +1,2 @@ +/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */ +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--spacing:.25rem;--container-3xl:48rem;--container-4xl:56rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-relaxed:1.625;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-obsidian:#0a0a0c;--color-surface-raised:#121318;--color-border:#27272a;--color-accent-cyan:#00f0ff;--color-accent-cyan-bright:#00f3ff;--color-accent-amber:#ffb700;--color-text-primary:#f4f4f6;--color-text-muted:#a1a1aa;--color-status-nominal:#10b981;--color-status-fault:#ef4444;--shadow-glow-cyan:0 0 18px #00f0ff59;--shadow-glow-amber:0 0 18px #ffb70059}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.top-0{top:0}.z-40{z-index:40}.z-50{z-index:50}.mx-auto{margin-inline:auto}.my-6{margin-block:calc(var(--spacing) * 6)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-auto{margin-top:auto}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-16{height:calc(var(--spacing) * 16)}.min-h-screen{min-height:100vh}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-7xl{max-width:var(--container-7xl)}.flex-1{flex:1}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-10>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 10) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 10) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-1{row-gap:var(--spacing)}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-accent-amber\/60{border-color:#ffb70099}@supports (color:color-mix(in lab, red, red)){.border-accent-amber\/60{border-color:color-mix(in oklab, var(--color-accent-amber) 60%, transparent)}}.border-accent-cyan{border-color:var(--color-accent-cyan)}.border-border{border-color:var(--color-border)}.border-transparent{border-color:#0000}.bg-accent-amber{background-color:var(--color-accent-amber)}.bg-accent-cyan{background-color:var(--color-accent-cyan)}.bg-obsidian{background-color:var(--color-obsidian)}.bg-obsidian\/60{background-color:#0a0a0c99}@supports (color:color-mix(in lab, red, red)){.bg-obsidian\/60{background-color:color-mix(in oklab, var(--color-obsidian) 60%, transparent)}}.bg-obsidian\/90{background-color:#0a0a0ce6}@supports (color:color-mix(in lab, red, red)){.bg-obsidian\/90{background-color:color-mix(in oklab, var(--color-obsidian) 90%, transparent)}}.bg-obsidian\/95{background-color:#0a0a0cf2}@supports (color:color-mix(in lab, red, red)){.bg-obsidian\/95{background-color:color-mix(in oklab, var(--color-obsidian) 95%, transparent)}}.bg-status-nominal{background-color:var(--color-status-nominal)}.bg-surface-raised{background-color:var(--color-surface-raised)}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.py-1{padding-block:var(--spacing)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-accent-amber{color:var(--color-accent-amber)}.text-accent-cyan{color:var(--color-accent-cyan)}.text-border{color:var(--color-border)}.text-obsidian{color:var(--color-obsidian)}.text-text-muted{color:var(--color-text-muted)}.text-text-primary{color:var(--color-text-primary)}.uppercase{text-transform:uppercase}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-90{opacity:.9}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}@media (hover:hover){.group-hover\:translate-x-0\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\:text-accent-cyan:is(:where(.group):hover *){color:var(--color-accent-cyan)}.group-hover\:underline:is(:where(.group):hover *){text-decoration-line:underline}}.selection\:bg-accent-cyan\/20 ::selection{background-color:#00f0ff33}@supports (color:color-mix(in lab, red, red)){.selection\:bg-accent-cyan\/20 ::selection{background-color:color-mix(in oklab, var(--color-accent-cyan) 20%, transparent)}}.selection\:bg-accent-cyan\/20::selection{background-color:#00f0ff33}@supports (color:color-mix(in lab, red, red)){.selection\:bg-accent-cyan\/20::selection{background-color:color-mix(in oklab, var(--color-accent-cyan) 20%, transparent)}}.selection\:text-accent-cyan ::selection{color:var(--color-accent-cyan)}.selection\:text-accent-cyan::selection{color:var(--color-accent-cyan)}@media (hover:hover){.hover\:border-accent-cyan:hover{border-color:var(--color-accent-cyan)}.hover\:border-border:hover{border-color:var(--color-border)}.hover\:bg-accent-cyan-bright:hover{background-color:var(--color-accent-cyan-bright)}.hover\:bg-accent-cyan\/10:hover{background-color:#00f0ff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent-cyan\/10:hover{background-color:color-mix(in oklab, var(--color-accent-cyan) 10%, transparent)}}.hover\:text-accent-cyan:hover{color:var(--color-accent-cyan)}}.focus\:not-sr-only:focus{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.focus\:fixed:focus{position:fixed}.focus\:top-3:focus{top:calc(var(--spacing) * 3)}.focus\:left-3:focus{left:calc(var(--spacing) * 3)}.focus\:z-50:focus{z-index:50}.focus\:border:focus{border-style:var(--tw-border-style);border-width:1px}.focus\:border-accent-cyan:focus{border-color:var(--color-accent-cyan)}.focus\:bg-surface-raised:focus{background-color:var(--color-surface-raised)}.focus\:px-4:focus{padding-inline:calc(var(--spacing) * 4)}.focus\:py-2:focus{padding-block:calc(var(--spacing) * 2)}.focus\:font-mono:focus{font-family:var(--font-mono)}.focus\:text-xs:focus{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.focus\:text-accent-cyan:focus{color:var(--color-accent-cyan)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-accent-cyan:focus{--tw-ring-color:var(--color-accent-cyan)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}@media (min-width:40rem){.sm\:my-12{margin-block:calc(var(--spacing) * 12)}.sm\:inline-flex{display:inline-flex}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:p-5{padding:calc(var(--spacing) * 5)}.sm\:p-8{padding:calc(var(--spacing) * 8)}.sm\:p-10{padding:calc(var(--spacing) * 10)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:py-12{padding-block:calc(var(--spacing) * 12)}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}}@media (min-width:48rem){.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}}@media (min-width:64rem){.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}}}:root{--color-obsidian:#0a0a0c;--color-surface-raised:#121318;--color-border:#27272a;--color-accent-cyan:#00f0ff;--color-accent-cyan-bright:#00f3ff;--color-accent-amber:#ffb700;--color-text-primary:#f4f4f6;--color-text-muted:#a1a1aa;--color-phase-g:#00f0ff;--color-phase-u:#38bdf8;--color-phase-a:#a855f7;--color-phase-r:#ffb700;--color-phase-d:#22c55e;--color-phase-s:#10b981;--color-status-nominal:#10b981;--color-status-warn:#ffb700;--color-status-fault:#ef4444;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--shadow-glow-cyan:0 0 18px #00f0ff59;--shadow-glow-amber:0 0 18px #ffb70059}html,body{background-color:var(--color-obsidian);color:var(--color-text-primary);font-family:var(--font-sans);color-scheme:dark}code,pre,kbd,samp,.font-mono{font-family:var(--font-mono)}.prose-tars{color:var(--color-text-primary);line-height:1.75}.prose-tars h1,.prose-tars h2,.prose-tars h3,.prose-tars h4{font-family:var(--font-mono);color:var(--color-text-primary);letter-spacing:-.02em;margin-top:2rem;margin-bottom:.75rem;font-weight:700}.prose-tars p,.prose-tars ul,.prose-tars ol,.prose-tars blockquote,.prose-tars pre,.prose-tars table{margin-bottom:1.25rem}.prose-tars a{color:var(--color-accent-cyan);text-underline-offset:4px;text-decoration:underline}.prose-tars a:hover{color:var(--color-accent-cyan-bright)}.prose-tars code{background-color:var(--color-surface-raised);border:1px solid var(--color-border);color:var(--color-accent-cyan);padding:.125rem .375rem;font-size:.875em}.prose-tars pre{background-color:var(--color-obsidian);border:1px solid var(--color-border);padding:1rem;overflow-x:auto}.prose-tars pre code{color:var(--color-text-primary);background-color:#0000;border:0;padding:0}.prose-tars blockquote{border-left:2px solid var(--color-accent-amber);color:var(--color-text-muted);padding-left:1rem}.prose-tars table{border-collapse:collapse;width:100%;font-size:.875rem}.prose-tars th,.prose-tars td{border:1px solid var(--color-border);text-align:left;padding:.5rem .75rem}.prose-tars th{background-color:var(--color-surface-raised);font-family:var(--font-mono);color:var(--color-accent-cyan)}.crt-scanlines,.scanline-overlay{background-image:repeating-linear-gradient(#fff0 0 2px,#00f0ff0a 3px,#00000038 4px)}.scanline-overlay{pointer-events:none}.glow-cyan{box-shadow:var(--shadow-glow-cyan)}.glow-amber{box-shadow:var(--shadow-glow-amber)}.text-glow-cyan{text-shadow:0 0 12px #00f0ff73}.text-glow-amber{text-shadow:0 0 12px #ffb70073}.border-glow-cyan{border-color:var(--color-accent-cyan);box-shadow:0 0 12px #00f0ff40}@keyframes tars-pulse{0%,to{opacity:1;box-shadow:0 0 8px}50%{opacity:.35;box-shadow:0 0 2px}}.status-pulse{animation:2.2s cubic-bezier(.4,0,.6,1) infinite tars-pulse}.status-chip{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--color-border);background-color:var(--color-obsidian);padding:.25rem .5rem;font-size:.6875rem;line-height:1}.status-chip-nominal{color:var(--color-status-nominal);border-color:#10b98173}.status-chip-amber{color:var(--color-accent-amber);border-color:#ffb70073}.status-chip-danger{color:var(--color-status-fault);border-color:#ef444473}.tactical-panel{background-color:var(--color-surface-raised);border:1px solid var(--color-border)}@media (prefers-contrast:more){html,body{color:#fff;background-color:#000}.crt-scanlines,.scanline-overlay{background-image:none!important}.glow-cyan,.glow-amber,.border-glow-cyan{box-shadow:none!important}.text-glow-cyan,.text-glow-amber{text-shadow:none!important}.tactical-panel,.status-chip{border-color:#f4f4f6!important}}@media (prefers-reduced-motion:reduce){.status-pulse{animation:none!important}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000} \ No newline at end of file diff --git a/static/favicon.ico b/static/favicon.ico new file mode 100644 index 0000000..84c17d7 Binary files /dev/null and b/static/favicon.ico differ diff --git a/static/images/og-banner.png b/static/images/og-banner.png new file mode 100644 index 0000000..f6ded83 Binary files /dev/null and b/static/images/og-banner.png differ diff --git a/static/images/tars-logo.svg b/static/images/tars-logo.svg new file mode 100644 index 0000000..560d13e --- /dev/null +++ b/static/images/tars-logo.svg @@ -0,0 +1,52 @@ + + TARS Cloud Monolith Emblem + Four-slab articulated TARS sovereign monolith in obsidian and raised slate with cyan vector bevels and tactical amber telemetry core. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/styles/input.css b/styles/input.css new file mode 100644 index 0000000..309d03c --- /dev/null +++ b/styles/input.css @@ -0,0 +1,281 @@ +@import "tailwindcss"; + +@theme { + --color-obsidian: #0a0a0c; + --color-surface-raised: #121318; + --color-border: #27272a; + --color-accent-cyan: #00f0ff; + --color-accent-cyan-bright: #00f3ff; + --color-accent-amber: #ffb700; + --color-text-primary: #f4f4f6; + --color-text-muted: #a1a1aa; + --color-phase-g: #00f0ff; + --color-phase-u: #38bdf8; + --color-phase-a: #a855f7; + --color-phase-r: #ffb700; + --color-phase-d: #22c55e; + --color-phase-s: #10b981; + --color-status-nominal: #10b981; + --color-status-warn: #ffb700; + --color-status-fault: #ef4444; + --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; + --font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif; + --shadow-glow-cyan: 0 0 18px rgba(0, 240, 255, 0.35); + --shadow-glow-amber: 0 0 18px rgba(255, 183, 0, 0.35); +} + +:root { + --color-obsidian: #0a0a0c; + --color-surface-raised: #121318; + --color-border: #27272a; + --color-accent-cyan: #00f0ff; + --color-accent-cyan-bright: #00f3ff; + --color-accent-amber: #ffb700; + --color-text-primary: #f4f4f6; + --color-text-muted: #a1a1aa; + --color-phase-g: #00f0ff; + --color-phase-u: #38bdf8; + --color-phase-a: #a855f7; + --color-phase-r: #ffb700; + --color-phase-d: #22c55e; + --color-phase-s: #10b981; + --color-status-nominal: #10b981; + --color-status-warn: #ffb700; + --color-status-fault: #ef4444; + --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; + --font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif; + --shadow-glow-cyan: 0 0 18px rgba(0, 240, 255, 0.35); + --shadow-glow-amber: 0 0 18px rgba(255, 183, 0, 0.35); +} + +/* Base document resets & typography */ +html, +body { + background-color: var(--color-obsidian); + color: var(--color-text-primary); + font-family: var(--font-sans); + color-scheme: dark; +} + +code, +pre, +kbd, +samp, +.font-mono { + font-family: var(--font-mono); +} + +/* Markdown prose container */ +.prose-tars { + color: var(--color-text-primary); + line-height: 1.75; +} + +.prose-tars h1, +.prose-tars h2, +.prose-tars h3, +.prose-tars h4 { + font-family: var(--font-mono); + color: var(--color-text-primary); + font-weight: 700; + letter-spacing: -0.02em; + margin-top: 2rem; + margin-bottom: 0.75rem; +} + +.prose-tars p, +.prose-tars ul, +.prose-tars ol, +.prose-tars blockquote, +.prose-tars pre, +.prose-tars table { + margin-bottom: 1.25rem; +} + +.prose-tars a { + color: var(--color-accent-cyan); + text-decoration: underline; + text-underline-offset: 4px; +} + +.prose-tars a:hover { + color: var(--color-accent-cyan-bright); +} + +.prose-tars code { + background-color: var(--color-surface-raised); + border: 1px solid var(--color-border); + padding: 0.125rem 0.375rem; + font-size: 0.875em; + color: var(--color-accent-cyan); +} + +.prose-tars pre { + background-color: var(--color-obsidian); + border: 1px solid var(--color-border); + padding: 1rem; + overflow-x: auto; +} + +.prose-tars pre code { + background-color: transparent; + border: 0; + padding: 0; + color: var(--color-text-primary); +} + +.prose-tars blockquote { + border-left: 2px solid var(--color-accent-amber); + padding-left: 1rem; + color: var(--color-text-muted); +} + +.prose-tars table { + width: 100%; + border-collapse: collapse; + font-size: 0.875rem; +} + +.prose-tars th, +.prose-tars td { + border: 1px solid var(--color-border); + padding: 0.5rem 0.75rem; + text-align: left; +} + +.prose-tars th { + background-color: var(--color-surface-raised); + font-family: var(--font-mono); + color: var(--color-accent-cyan); +} + +/* CRT scanline overlays */ +.crt-scanlines, +.scanline-overlay { + background-image: repeating-linear-gradient( + to bottom, + rgba(255, 255, 255, 0) 0px, + rgba(255, 255, 255, 0) 2px, + rgba(0, 240, 255, 0.04) 3px, + rgba(0, 0, 0, 0.22) 4px + ); +} + +.scanline-overlay { + pointer-events: none; +} + +/* Phosphor glow effects */ +.glow-cyan { + box-shadow: var(--shadow-glow-cyan); +} + +.glow-amber { + box-shadow: var(--shadow-glow-amber); +} + +.text-glow-cyan { + text-shadow: 0 0 12px rgba(0, 240, 255, 0.45); +} + +.text-glow-amber { + text-shadow: 0 0 12px rgba(255, 183, 0, 0.45); +} + +.border-glow-cyan { + border-color: var(--color-accent-cyan); + box-shadow: 0 0 12px rgba(0, 240, 255, 0.25); +} + +/* Status indicator pulses and chips */ +@keyframes tars-pulse { + 0%, + 100% { + opacity: 1; + box-shadow: 0 0 8px currentColor; + } + 50% { + opacity: 0.35; + box-shadow: 0 0 2px currentColor; + } +} + +.status-pulse { + animation: tars-pulse 2.2s cubic-bezier(0.4, 0, 0.6, 1) infinite; +} + +.status-chip { + font-family: var(--font-mono); + font-size: 0.6875rem; + line-height: 1; + letter-spacing: 0.08em; + text-transform: uppercase; + padding: 0.25rem 0.5rem; + border: 1px solid var(--color-border); + background-color: var(--color-obsidian); +} + +.status-chip-nominal { + color: var(--color-status-nominal); + border-color: rgba(16, 185, 129, 0.45); +} + +.status-chip-amber { + color: var(--color-accent-amber); + border-color: rgba(255, 183, 0, 0.45); +} + +.status-chip-danger { + color: var(--color-status-fault); + border-color: rgba(239, 68, 68, 0.45); +} + +/* Tactical surface panel */ +.tactical-panel { + background-color: var(--color-surface-raised); + border: 1px solid var(--color-border); +} + +/* Accessibility & high-contrast fallbacks */ +@media (prefers-contrast: more) { + html, + body { + background-color: #000000; + color: #ffffff; + } + + .crt-scanlines, + .scanline-overlay { + background-image: none !important; + } + + .glow-cyan, + .glow-amber, + .border-glow-cyan { + box-shadow: none !important; + } + + .text-glow-cyan, + .text-glow-amber { + text-shadow: none !important; + } + + .tactical-panel, + .status-chip { + border-color: #f4f4f6 !important; + } +} + +@media (prefers-reduced-motion: reduce) { + .status-pulse { + animation: none !important; + } + + *, + *::before, + *::after { + transition-duration: 0.01ms !important; + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + } +} diff --git a/templates/404.html b/templates/404.html new file mode 100644 index 0000000..a70d6fd --- /dev/null +++ b/templates/404.html @@ -0,0 +1,56 @@ +{% extends "base.html" %} + +{% block title %}404 // TRANSMISSION_LOST | {{ config.title }}{% endblock %} + +{% block content %} +
+
+
+ + + WARN // ROUTE_FAULT + + TELEMETRY_FRAME // 0x0194 +
+ +
+

+ ALERT // CARRIER_SIGNAL_INTERRUPTED +

+

+ TRANSMISSION_LOST // 404_NOT_FOUND +

+

+ The requested coordinate vector could not be resolved on the TARS sovereign edge mesh. Verify the URI path or reroute to an active command sector below. +

+
+ +
+
// DIAGNOSTIC_TELEMETRY_READOUT
+
+
STATUS_CODE: 0x0194
+
HTTP_STATUS: 404
+
SIGNAL_STATE: CARRIER_DROPPED
+
ERROR_CLASS: ROUTE_UNRESOLVED
+
NODE: TARS-SOVEREIGN-EDGE
+
RECOVERY_ACTION: REROUTE_TO_BASE
+
+
+ + +
+
+{% endblock %} diff --git a/templates/base.html b/templates/base.html new file mode 100644 index 0000000..286d5ab --- /dev/null +++ b/templates/base.html @@ -0,0 +1,210 @@ + + + + + + {% if page is defined and page.title %} + {% set meta_title = page.title ~ " | " ~ config.title %} + {% elif section is defined and section.title %} + {% set meta_title = section.title ~ " | " ~ config.title %} + {% else %} + {% set meta_title = config.title %} + {% endif %} + {% if page is defined and page.description %} + {% set meta_description = page.description %} + {% elif section is defined and section.description %} + {% set meta_description = section.description %} + {% else %} + {% set meta_description = config.description %} + {% endif %} + {% if current_url is defined and current_url %} + {% set canonical_url = current_url %} + {% elif page is defined and page.permalink %} + {% set canonical_url = page.permalink %} + {% elif section is defined and section.permalink %} + {% set canonical_url = section.permalink %} + {% else %} + {% set canonical_url = config.base_url ~ "/" %} + {% endif %} + {% set og_image_url = get_url(path="images/og-banner.png", trailing_slash=false) %} + + {% block title %}{{ meta_title }}{% endblock %} + + + + + + + + + + + + + + + + + + + + + + + {% block head %}{% endblock %} + + + {% if config.extra.enable_scanlines | default(value=true) %} + + {% endif %} + + + SKIP_TO_MAIN_CONTENT // #main-content + + +
+
+
+ + TARS Cloud +
+ + TARS_CLOUD + + + SOVEREIGN // RUNTIME + +
+
+ + +
+ + + +
+ {% block header_actions %}{% endblock %} + + +
+
+ + +
+ +
+ {% block content %}{% endblock %} +
+ +
+
+
+ TARS Cloud Emblem +
+

TARS CLOUD // SOVEREIGN AI INFRASTRUCTURE

+

© {{ now() | date(format="%Y") }} TARS Cloud Contributors. All telemetry verified.

+
+
+ +
+ DOCS + + DOWNLOADS + + GITHUB + + SOURCE +
+ +
+ LICENSE // MIT + AIRGAP_READY // ZERO_NPM_RUNTIME +
+
+
+ + + {% block scripts %}{% endblock %} + + diff --git a/templates/page.html b/templates/page.html new file mode 100644 index 0000000..5aa5585 --- /dev/null +++ b/templates/page.html @@ -0,0 +1,48 @@ +{% extends "base.html" %} + +{% block title %}{{ page.title }} | {{ config.title }}{% endblock %} + +{% block content %} +
+ + +
+
+ DOC_SPEC // VERIFIED + {% if page.date %} + + {% endif %} + {% if page.reading_time %} + EST_READ // {{ page.reading_time }} MIN + {% endif %} +
+ +

+ {{ page.title }} +

+ + {% if page.description %} +

+ {{ page.description }} +

+ {% endif %} +
+ +
+ {{ page.content | safe }} +
+
+{% endblock %} diff --git a/templates/section.html b/templates/section.html new file mode 100644 index 0000000..3fc0172 --- /dev/null +++ b/templates/section.html @@ -0,0 +1,94 @@ +{% extends "base.html" %} + +{% block title %}{% if section.title %}{{ section.title }} | {{ config.title }}{% else %}{{ config.title }}{% endif %}{% endblock %} + +{% block content %} +
+
+
+ INDEX_SECTOR // ACTIVE + ENTRIES // {{ section.pages | length }} +
+ +

+ {{ section.title | default(value=config.title) }} +

+ + {% if section.description %} +

+ {{ section.description }} +

+ {% endif %} +
+ + {% if section.content %} +
+ {{ section.content | safe }} +
+ {% endif %} + + {% if section.subsections and section.subsections | length > 0 %} +
+

+ // CHILD_SECTORS +

+
+ {% for subsection_path in section.subsections %} + {% set sub = get_section(path=subsection_path) %} + +
+ SECTOR // {{ loop.index }} + OPEN_SECTOR -> +
+

+ {{ sub.title }} +

+ {% if sub.description %} +

{{ sub.description }}

+ {% endif %} +
+ {% endfor %} +
+
+ {% endif %} + + {% if section.pages and section.pages | length > 0 %} +
+

+ // TRANSMISSIONS +

+
+ {% for post in section.pages %} +
+
+
+ {% if post.date %} + + {% else %} + SPEC_NODE + {% endif %} + {% if post.reading_time %} + {{ post.reading_time }} MIN + {% endif %} +
+

+ {{ post.title }} +

+ {% if post.description %} +

{{ post.description }}

+ {% elif post.summary %} +
{{ post.summary | safe }}
+ {% endif %} +
+ +
+ {% endfor %} +
+
+ {% endif %} +
+{% endblock %}