From 3ec8a84904d5632c38831ccca196482505884cac Mon Sep 17 00:00:00 2001 From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com> Date: Sun, 4 Oct 2026 00:54:16 +0100 Subject: [PATCH 1/5] docs: give the site a test-run identity Rework the docs theme and homepage around the vocabulary of a test run: .NET violet as the brand colour, pass green and fail red reserved for results, Schibsted Grotesk with JetBrains Mono for code. - Homepage hero shows an animated parallel test run across worker lanes - Write / Build / Run sections, including an analyzer squiggle demo - Sidebar tree guide rail, editor-tab code titles, refreshed favicon - Ask AI widget switched to the slate preset --- docs/docusaurus.config.ts | 2 +- docs/src/css/custom.css | 282 ++++++++++++------- docs/src/pages/index.module.css | 337 ++++++++++------------ docs/src/pages/index.tsx | 454 ++++++++++++++++++++---------- docs/static/img/tunit-favicon.svg | 6 +- 5 files changed, 625 insertions(+), 456 deletions(-) diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts index 6c9d7fe0902..ea00ecb9bc6 100644 --- a/docs/docusaurus.config.ts +++ b/docs/docusaurus.config.ts @@ -42,7 +42,7 @@ const config: Config = { innerHTML: `window.tlumaConfig = { source: "thomhurst/tunit", theme: "auto", - brandColor: "green", + brandColor: "slate", button: "bottom-right", welcomePulse: true, edgePadding: "1rem", diff --git a/docs/src/css/custom.css b/docs/src/css/custom.css index 4fd525f5712..243ed69ae27 100644 --- a/docs/src/css/custom.css +++ b/docs/src/css/custom.css @@ -1,108 +1,123 @@ @import url('./benchmark-charts.css'); -@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&family=Schibsted+Grotesk:ital,wght@0,400..900;1,400..900&display=swap'); -/* Shared with the homepage: forest ink, mint surfaces, and plum accents. */ +/* + * TUnit borrows the vocabulary of a test run: .NET violet for the brand, + * pass green and fail red reserved for results, and cool lab-white paper. + */ :root { - --tunit-ink: #214b3c; - --tunit-body: #365747; - --tunit-muted: #50695d; - --tunit-paper: #f8fbf9; - --tunit-surface: #d5f4e5; - --tunit-border: #b5d0c1; - --tunit-accent: #654b87; - --tunit-accent-surface: #e4def3; - --tunit-code: #edf6f0; - --tunit-on-primary: #f8fbf9; - --tunit-warning: #624915; - --tunit-warning-surface: #f6e9c6; - --tunit-danger: #7f3431; - --tunit-danger-surface: #f5dfdc; - --tunit-chart-primary: #365e4b; - --tunit-chart-secondary: #654b87; - --tunit-chart-comparison: #50695d; - --tunit-chart-label: #f8fbf9; + --tunit-ink: #1a1633; + --tunit-body: #36325a; + --tunit-muted: #5c5880; + --tunit-paper: #f6f7fb; + --tunit-surface: #eceef7; + --tunit-border: #d6d8e8; + --tunit-accent: #512bd4; + --tunit-accent-surface: #ebe5ff; + --tunit-code: #eff0f8; + --tunit-on-primary: #ffffff; + --tunit-pass: #127a43; + --tunit-pass-fill: #22b866; + --tunit-fail: #c3352b; + --tunit-warning: #6b4a00; + --tunit-warning-surface: #fbefcc; + --tunit-danger: #9a2a22; + --tunit-danger-surface: #fbe3e0; + --tunit-chart-primary: #512bd4; + --tunit-chart-secondary: #22b866; + --tunit-chart-comparison: #8f8bb0; + --tunit-chart-label: #ffffff; - --ifm-color-primary: #365e4b; - --ifm-color-primary-dark: #305443; - --ifm-color-primary-darker: #2b4b3c; - --ifm-color-primary-darkest: #214b3c; - --ifm-color-primary-light: #3b6652; - --ifm-color-primary-lighter: #406e58; - --ifm-color-primary-lightest: #45775f; - --ifm-color-emphasis-100: #edf6f0; - --ifm-color-emphasis-200: #dce8df; - --ifm-color-emphasis-300: #b5d0c1; - --ifm-color-emphasis-400: #91b09f; - --ifm-color-emphasis-500: #708e7d; - --ifm-color-emphasis-600: #50695d; - --ifm-color-emphasis-700: #365747; - --ifm-color-emphasis-800: #294f3f; - --ifm-color-emphasis-900: #214b3c; - --syntax-keyword: #654b87; - --syntax-string: #286044; - --syntax-function: #704472; - --syntax-class: #296462; - --syntax-number: #795320; - --syntax-comment: #607568; + --ifm-color-primary: #512bd4; + --ifm-color-primary-dark: #4926bf; + --ifm-color-primary-darker: #4524b4; + --ifm-color-primary-darkest: #381e94; + --ifm-color-primary-light: #623ed9; + --ifm-color-primary-lighter: #6a48db; + --ifm-color-primary-lightest: #8466e2; + --ifm-color-emphasis-100: #eff0f8; + --ifm-color-emphasis-200: #e2e4f0; + --ifm-color-emphasis-300: #d6d8e8; + --ifm-color-emphasis-400: #aeb0c9; + --ifm-color-emphasis-500: #8f8bb0; + --ifm-color-emphasis-600: #5c5880; + --ifm-color-emphasis-700: #36325a; + --ifm-color-emphasis-800: #272348; + --ifm-color-emphasis-900: #1a1633; + --syntax-keyword: #512bd4; + --syntax-string: #a3461b; + --syntax-function: #7a3e9d; + --syntax-class: #0f6e78; + --syntax-number: #127a43; + --syntax-comment: #6f6c8e; } html[data-theme='dark'] { - --tunit-ink: #d5f4e5; - --tunit-body: #c1d9cc; - --tunit-muted: #acc5b8; - --tunit-paper: #172f27; - --tunit-surface: #203e32; - --tunit-border: #426351; - --tunit-accent: #d2bafa; - --tunit-accent-surface: #3e3450; - --tunit-code: #203e32; - --tunit-on-primary: #172f27; - --tunit-warning: #eed39a; - --tunit-warning-surface: #423a27; - --tunit-danger: #f4bab5; - --tunit-danger-surface: #452c2d; + --tunit-ink: #eeecfa; + --tunit-body: #cfcce6; + --tunit-muted: #a6a2c6; + --tunit-paper: #16132b; + --tunit-surface: #1f1b3a; + --tunit-border: #37325c; + --tunit-accent: #ae98ff; + --tunit-accent-surface: #2f2660; + --tunit-code: #1d1937; + --tunit-on-primary: #16132b; + --tunit-pass: #5ad993; + --tunit-pass-fill: #3ccf80; + --tunit-fail: #ff8a80; + --tunit-warning: #f3d58e; + --tunit-warning-surface: #3b3220; + --tunit-danger: #ffb4ad; + --tunit-danger-surface: #43222a; + --tunit-chart-primary: #ae98ff; + --tunit-chart-secondary: #3ccf80; + --tunit-chart-comparison: #6f6b95; + --tunit-chart-label: #16132b; - --ifm-color-primary: #b6dbc6; - --ifm-color-primary-dark: #a2d1b7; - --ifm-color-primary-darker: #8ec7a8; - --ifm-color-primary-darkest: #7abd99; - --ifm-color-primary-light: #c6e7d5; - --ifm-color-primary-lighter: #d5f4e5; - --ifm-color-primary-lightest: #e5f9ee; - --ifm-color-emphasis-100: #203e32; - --ifm-color-emphasis-200: #2e4e3f; - --ifm-color-emphasis-300: #426351; - --ifm-color-emphasis-400: #628570; - --ifm-color-emphasis-500: #86a694; - --ifm-color-emphasis-600: #acc5b8; - --ifm-color-emphasis-700: #c1d9cc; - --ifm-color-emphasis-800: #cbe7d8; - --ifm-color-emphasis-900: #d5f4e5; - --syntax-keyword: #d2bafa; - --syntax-string: #b6dbc6; - --syntax-function: #e0bddb; - --syntax-class: #a6d9d2; - --syntax-number: #eed39a; - --syntax-comment: #acc5b8; + --ifm-color-primary: #ae98ff; + --ifm-color-primary-dark: #9c82ff; + --ifm-color-primary-darker: #9377ff; + --ifm-color-primary-darkest: #7856ff; + --ifm-color-primary-light: #c0aeff; + --ifm-color-primary-lighter: #c9b9ff; + --ifm-color-primary-lightest: #e1d9ff; + --ifm-color-emphasis-100: #1f1b3a; + --ifm-color-emphasis-200: #2a2549; + --ifm-color-emphasis-300: #37325c; + --ifm-color-emphasis-400: #504a7a; + --ifm-color-emphasis-500: #6f6b95; + --ifm-color-emphasis-600: #a6a2c6; + --ifm-color-emphasis-700: #cfcce6; + --ifm-color-emphasis-800: #e0def2; + --ifm-color-emphasis-900: #eeecfa; + --syntax-keyword: #b9a6ff; + --syntax-string: #f3b58a; + --syntax-function: #e3b3f5; + --syntax-class: #7fd8de; + --syntax-number: #7be3a8; + --syntax-comment: #8f8bb0; } /* Define aliases in both themes so inherited values resolve against that theme. */ :root, html[data-theme='dark'] { - --ifm-font-family-base: 'Space Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; + --ifm-font-family-base: 'Schibsted Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; + --ifm-font-family-monospace: 'JetBrains Mono', 'Cascadia Code', Consolas, monospace; + --ifm-line-height-base: 1.7; --ifm-heading-font-family: var(--ifm-font-family-base); - --ifm-heading-font-weight: 600; + --ifm-heading-font-weight: 700; --ifm-font-color-base: var(--tunit-body); --ifm-heading-color: var(--tunit-ink); --ifm-background-color: var(--tunit-paper); --ifm-background-surface-color: var(--tunit-surface); - --ifm-navbar-background-color: var(--tunit-surface); + --ifm-navbar-background-color: var(--tunit-paper); --ifm-navbar-link-color: var(--tunit-ink); --ifm-navbar-link-hover-color: var(--tunit-accent); --ifm-link-color: var(--tunit-accent); --ifm-link-hover-color: var(--tunit-ink); --ifm-menu-color: var(--tunit-muted); --ifm-menu-color-active: var(--tunit-ink); - --ifm-menu-color-background-active: var(--tunit-surface); + --ifm-menu-color-background-active: transparent; --ifm-menu-color-background-hover: var(--tunit-code); --ifm-breadcrumb-color-active: var(--tunit-accent); --ifm-breadcrumb-item-background-active: var(--tunit-accent-surface); @@ -111,10 +126,10 @@ html[data-theme='dark'] { --ifm-color-content-secondary: var(--tunit-muted); --ifm-card-background-color: var(--tunit-code); --ifm-code-background: var(--tunit-code); - --ifm-code-font-size: 95%; + --ifm-code-font-size: 88%; --ifm-table-border-color: var(--tunit-border); --ifm-table-head-background: var(--tunit-surface); - --ifm-table-stripe-background: var(--tunit-code); + --ifm-table-stripe-background: transparent; --ifm-hr-background-color: var(--tunit-border); --docusaurus-highlighted-code-line-bg: var(--tunit-accent-surface); --text-primary: var(--tunit-ink); @@ -129,6 +144,8 @@ html[data-theme='dark'] { } body { margin: 0; } +/* JetBrains Mono would draw `--` as a dash, which misleads in CLI commands. */ +code, pre, kbd { font-variant-ligatures: none; } a { text-underline-offset: 3px; } :where(a, button, input, select, summary, [tabindex]):focus-visible { outline: 3px solid var(--tunit-accent); @@ -140,17 +157,18 @@ a { text-underline-offset: 3px; } box-shadow: none; } .navbar__brand { gap: 0.65rem; } -.navbar__title { color: var(--tunit-ink); font-size: 1.15rem; letter-spacing: -0.04em; } -.navbar__link { font-size: 0.85rem; font-weight: 600; } -.navbar__logo { height: 1.85rem; } +.navbar__title { color: var(--tunit-ink); font-size: 1.3rem; font-weight: 800; letter-spacing: -0.045em; } +.navbar__link { font-size: 0.9rem; font-weight: 500; } +.navbar__link--active { color: var(--tunit-accent); } +.navbar__logo { height: 1.75rem; } .navbar__toggle, .navbar-sidebar__close { color: var(--tunit-ink); } .navbar-sidebar { background: var(--tunit-paper); } .navbar-sidebar__brand { background: var(--tunit-surface); border-bottom: 1px solid var(--tunit-border); } .navbar-sidebar__back { color: var(--tunit-ink); background: var(--tunit-code); } -.navbar-sidebar .menu__link--active { color: var(--tunit-ink); background: var(--tunit-surface); } +.navbar-sidebar .menu__link--active { color: var(--tunit-accent); } .footer, .footer--dark { - --ifm-footer-background-color: var(--tunit-surface); + --ifm-footer-background-color: var(--tunit-paper); --ifm-footer-color: var(--tunit-muted); --ifm-footer-title-color: var(--tunit-ink); --ifm-footer-link-color: var(--tunit-body); @@ -163,7 +181,7 @@ html[data-theme] { --docsearch-primary-color: var(--tunit-accent); --docsearch-text-color: var(--tunit-ink); --docsearch-muted-color: var(--tunit-muted); - --docsearch-container-background: rgb(23 47 39 / 65%); + --docsearch-container-background: rgb(26 22 51 / 60%); --docsearch-modal-background: var(--tunit-paper); --docsearch-searchbox-background: var(--tunit-code); --docsearch-searchbox-focus-background: var(--tunit-paper); @@ -179,39 +197,87 @@ html[data-theme] { --docsearch-footer-shadow: 0 -1px 0 var(--tunit-border); --docsearch-logo-color: var(--tunit-muted); } -.DocSearch-Button { background: var(--tunit-paper); border: 1px solid var(--tunit-border); color: var(--tunit-muted); border-radius: 6px; } +.DocSearch-Button { background: var(--tunit-surface); border: 1px solid transparent; color: var(--tunit-muted); border-radius: 8px; } .DocSearch-Button:hover { background: var(--tunit-code); color: var(--tunit-ink); box-shadow: inset 0 0 0 1px var(--tunit-accent); } .DocSearch-Button-Key { background: var(--tunit-code); border: 1px solid var(--tunit-border); color: var(--tunit-muted); box-shadow: none; } .DocSearch-Hit[aria-selected='true'] a { background: var(--tunit-accent-surface); } .DocSearch-Hit[aria-selected='true'] :is(.DocSearch-Hit-title, .DocSearch-Hit-path, .DocSearch-Hit-icon, mark) { color: var(--tunit-ink) !important; } .theme-doc-sidebar-container { background: var(--tunit-paper); border-color: var(--tunit-border) !important; } -.menu__link { border-radius: 5px; } -.menu__link--active { font-weight: 600; } -.table-of-contents__link--active, .table-of-contents__link:hover { color: var(--tunit-accent); } -.theme-doc-markdown h1 { letter-spacing: -0.04em; } -.theme-doc-markdown h2 { letter-spacing: -0.03em; } +.theme-doc-sidebar-menu { font-size: 0.92rem; } +.menu { padding-top: 1.25rem; } +.menu__link { border-radius: 6px; } +.menu__link:hover { color: var(--tunit-ink); } +.menu__list-item-collapsible:hover { background: var(--tunit-surface); } +:is(.theme-doc-sidebar-item-category-level-1 > .menu__list-item-collapsible, .theme-doc-sidebar-item-link-level-1) > .menu__link { color: var(--tunit-ink); font-weight: 650; } + +/* Nested sidebar levels read like a test explorer tree: a guide rail, with the open page marked on it. */ +.theme-doc-sidebar-menu .menu__list .menu__list { + margin-left: 0.85rem; + padding-left: 0.35rem; + border-left: 1px solid var(--tunit-border); +} +.theme-doc-sidebar-menu .menu__link--active:not(.menu__link--sublist) { + position: relative; + color: var(--tunit-accent); + font-weight: 650; + background: var(--tunit-accent-surface); +} +.theme-doc-sidebar-menu .menu__list .menu__list .menu__link--active:not(.menu__link--sublist)::before { + content: ''; + position: absolute; + left: calc(-0.35rem - 2px); + top: 0.35rem; + bottom: 0.35rem; + width: 3px; + border-radius: 2px; + background: var(--tunit-accent); +} + +.table-of-contents { font-size: 0.82rem; } +.table-of-contents__link--active { color: var(--tunit-accent); font-weight: 600; } +.table-of-contents__link:hover { color: var(--tunit-accent); } +.theme-doc-markdown { --ifm-h1-font-size: 2.9rem; --ifm-h2-font-size: 1.85rem; --ifm-h3-font-size: 1.3rem; } +.theme-doc-markdown h1 { letter-spacing: -0.045em; line-height: 1.05; font-weight: 800; } +.theme-doc-markdown h2 { letter-spacing: -0.03em; margin-top: 3rem; } +.theme-doc-markdown h3 { letter-spacing: -0.015em; margin-top: 2rem; } .theme-doc-markdown :is(h2, h3) { scroll-margin-top: calc(var(--ifm-navbar-height) + 1rem); } -.pagination-nav__link { background: var(--tunit-code); border-color: var(--tunit-border); border-radius: 6px; } -.pagination-nav__link:hover { border-color: var(--tunit-accent); } +.theme-doc-markdown > p, .theme-doc-markdown > ul, .theme-doc-markdown > ol { max-width: 72ch; } +.breadcrumbs__link { font-size: 0.8rem; } +.pagination-nav__link { background: transparent; border-color: var(--tunit-border); border-radius: 10px; } +.pagination-nav__link:hover { border-color: var(--tunit-accent); background: var(--tunit-surface); } .pagination-nav__label { color: var(--tunit-ink); } .pagination-nav__sublabel { color: var(--tunit-muted); } -code { color: var(--tunit-ink); border-color: var(--tunit-border); } -.theme-code-block { background: var(--tunit-code); border: 1px solid var(--tunit-border); box-shadow: none; } -.theme-code-block pre { background: var(--tunit-code) !important; color: var(--tunit-ink) !important; } +:not(pre) > code { color: var(--tunit-ink); background: var(--tunit-accent-surface); border: 0; padding: 0.1em 0.35em; border-radius: 4px; } +.theme-code-block { --prism-background-color: var(--tunit-code); background: var(--tunit-code); border: 1px solid var(--tunit-border); border-radius: 10px; box-shadow: none; } +.theme-code-block pre { background: var(--tunit-code) !important; color: var(--tunit-ink) !important; font-size: 0.84rem; line-height: 1.7; } .theme-code-block pre code { background: transparent; color: inherit; border: 0; } -.theme-code-block [class*='codeBlockTitle'] { background: var(--tunit-surface); border-color: var(--tunit-border); color: var(--tunit-ink); } +/* Titled code blocks look like an editor tab, since the title is almost always a file name. */ +.theme-code-block [class*='codeBlockTitle'] { + display: inline-block; + margin: 0.5rem 0 0 0.75rem; + padding: 0.35rem 0.8rem; + background: var(--tunit-paper); + border: 1px solid var(--tunit-border); + border-bottom: 0; + border-radius: 7px 7px 0 0; + box-shadow: inset 0 2px 0 var(--tunit-accent); + color: var(--tunit-ink); + font-family: var(--ifm-font-family-monospace); + font-size: 0.75rem; +} +.theme-code-block [class*='codeBlockTitle'] + div { border-top: 1px solid var(--tunit-border); } .theme-code-block button { color: var(--tunit-ink); background: var(--tunit-paper); border-color: var(--tunit-border); } .theme-code-block .token:is(.keyword, .tag, .namespace) { color: var(--syntax-keyword) !important; } .theme-code-block .token:is(.string, .attr-value) { color: var(--syntax-string) !important; } .theme-code-block .token:is(.function, .method, .property) { color: var(--syntax-function) !important; } .theme-code-block .token:is(.class-name, .type, .builtin) { color: var(--syntax-class) !important; } .theme-code-block .token:is(.number, .boolean, .constant) { color: var(--syntax-number) !important; } -.theme-code-block .token:is(.comment, .prolog, .doctype, .cdata) { color: var(--syntax-comment) !important; } +.theme-code-block .token:is(.comment, .prolog, .doctype, .cdata) { color: var(--syntax-comment) !important; font-style: italic; } .theme-code-block .token:is(.plain, .punctuation, .operator, .variable, .parameter) { color: var(--tunit-ink) !important; } -blockquote { background: var(--tunit-code); border-left-color: var(--tunit-accent); color: var(--tunit-body); padding: 1rem; } +blockquote { background: transparent; border-left: 3px solid var(--tunit-accent); color: var(--tunit-body); padding: 0.25rem 1rem; } blockquote > :last-child { margin-bottom: 0; } .tabs__item--active { color: var(--tunit-accent); border-bottom-color: var(--tunit-accent); } .tabs__item:hover { background: var(--tunit-code); } @@ -224,8 +290,8 @@ blockquote > :last-child { margin-bottom: 0; } --ifm-alert-foreground-color: var(--tunit-ink); } .theme-admonition.alert--success { - --ifm-alert-background-color: var(--tunit-surface); - --ifm-alert-border-color: var(--ifm-color-primary); + --ifm-alert-background-color: color-mix(in srgb, var(--tunit-pass-fill) 12%, var(--tunit-paper)); + --ifm-alert-border-color: var(--tunit-pass); --ifm-alert-foreground-color: var(--tunit-ink); } .theme-admonition.alert--warning { @@ -238,10 +304,10 @@ blockquote > :last-child { margin-bottom: 0; } --ifm-alert-border-color: var(--tunit-danger); --ifm-alert-foreground-color: var(--tunit-danger); } -.theme-admonition { color: var(--ifm-alert-foreground-color); box-shadow: none; } +.theme-admonition { color: var(--ifm-alert-foreground-color); box-shadow: none; border-width: 0 0 0 3px; border-radius: 0 8px 8px 0; } .theme-admonition :is(p, h5) { color: inherit; } .theme-admonition a { color: inherit; text-decoration: underline; } -.theme-admonition code { background: var(--tunit-paper); color: var(--tunit-ink); } +.theme-admonition :not(pre) > code { background: var(--tunit-paper); color: var(--tunit-ink); } .button--primary { --ifm-button-color: var(--tunit-on-primary); } ::-webkit-scrollbar { width: 10px; height: 10px; } diff --git a/docs/src/pages/index.module.css b/docs/src/pages/index.module.css index 62ad6f84c8c..beaf0222d8e 100644 --- a/docs/src/pages/index.module.css +++ b/docs/src/pages/index.module.css @@ -1,210 +1,157 @@ .page { - --forest: var(--tunit-ink); - --muted: var(--tunit-muted); - --mint: var(--tunit-surface); - --paper: var(--tunit-paper); - --line: var(--tunit-border); - --lilac: #e4def3; - --plum: var(--tunit-accent); - background: var(--paper); - color: var(--forest); - font-family: 'Space Grotesk', 'Segoe UI', sans-serif; + /* The run panel stays a terminal in both themes. */ + --run-bg: #1a1633; + --run-border: #1a1633; + --run-text: #e6e3f7; + --run-muted: #a29ec4; + --run-rail: #2c2752; + --run-bar: #3d3577; + --run-bar-text: #e6e3f7; + --run-pass: #3ccf80; + --run-pass-text: #0d2b1b; + background: var(--tunit-paper); + color: var(--tunit-ink); } -.container { width: min(1280px, calc(100% - 6rem)); margin-inline: auto; } -.page h1, .page h2, .page h3 { color: var(--forest); } -.page p { color: var(--muted); } -.page a { color: var(--forest); text-underline-offset: 5px; } -.page a:hover { color: var(--plum); } -.page :is(a, button, pre):focus-visible { outline: 3px solid var(--plum); outline-offset: 5px; } +:global([data-theme='dark']) .page { + --run-bg: #100d22; + --run-border: #37325c; + --run-rail: #221d42; +} + +.container { width: min(1240px, calc(100% - 4rem)); margin-inline: auto; } +.page h1, .page h2, .page h3 { color: var(--tunit-ink); } +.page p { color: var(--tunit-body); } +.page a { color: var(--tunit-accent); font-weight: 600; text-underline-offset: 4px; } +.page a:hover { color: var(--tunit-ink); } +.page :is(a, button, pre):focus-visible { outline: 3px solid var(--tunit-accent); outline-offset: 3px; } .page button { font: inherit; cursor: pointer; } -.page h2 { font-size: clamp(2.4rem, 4.2vw, 3.8rem); line-height: 1.08; letter-spacing: -0.06em; font-weight: 600; } -.page h3 { letter-spacing: -0.035em; font-weight: 600; } -.hero { padding: 2rem 0 0; background: var(--mint); } -.heroIntro { display: flex; justify-content: space-between; gap: 1rem; font-size: 0.85rem; } -.heroIntro a { text-decoration: underline; } -.heroGrid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 4rem; align-items: center; padding: 3rem 0 3.5rem; } -.wordmark { display: flex; align-items: center; gap: 0.18em; margin: 0 0 1.4rem -0.055em; font-size: clamp(6rem, 11.5vw, 10rem); letter-spacing: -0.085em; line-height: 1; font-weight: 700; } -.wordmarkCheck { display: grid; place-items: center; width: 0.48em; height: 0.48em; border: 3px solid currentColor; border-radius: 0.1em; transform: rotate(-8deg); } -.wordmarkCheck svg { width: 85%; height: 85%; } -.page .heroTitle { color: var(--forest); font-size: clamp(2.6rem, 4vw, 3.8rem); line-height: 1.06; font-weight: 500; letter-spacing: -0.065em; margin-bottom: 1.25rem; } -.heroLead { max-width: 24rem; font-size: 1.08rem; line-height: 1.65; } -.actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.7rem; margin-top: 1.8rem; } -.page .primaryButton, .page .secondaryButton { display: inline-flex; align-items: center; justify-content: center; min-height: 3.2rem; padding: 0.8rem 1.4rem; border-radius: 6px; font-weight: 600; text-decoration: none; } -.page .primaryButton { background: var(--forest); color: var(--paper); border: 1px solid var(--forest); } -.page .primaryButton:hover { background: #654b87; border-color: #654b87; color: #fff; } -.page .secondaryButton { border: 1px solid var(--forest); white-space: nowrap; } -.page .secondaryButton:hover { background: var(--forest); color: var(--paper); } -.quietLink { font-weight: 600; text-decoration: underline; } -.heroFootnote { font-size: 0.78rem; margin: 1.7rem 0 0; } +.primaryButton, .quietLink { display: inline-flex; align-items: center; min-height: 3rem; } +.page .primaryButton { padding: 0.75rem 1.4rem; border-radius: 8px; background: var(--tunit-accent); color: var(--tunit-on-primary); text-decoration: none; } +.page .primaryButton:hover { background: var(--tunit-ink); color: var(--tunit-paper); } +.page .quietLink { text-decoration: underline; } -.workbench { min-width: 0; background: #fff; color: #214b3c; border: 1px solid #8eb69f; border-radius: 12px; box-shadow: 8px 8px 0 #b6dbc6; overflow: hidden; } -.workbenchHeading { display: flex; align-items: center; justify-content: space-between; padding: 1.1rem 1.5rem; gap: 1rem; background: #edf6f0; font-weight: 600; font-size: 0.95rem; } -.language { font-size: 0.75rem; color: #50695d; } -.examplePicker { display: flex; padding: 0 1rem; gap: 0.5rem; border-bottom: 1px solid #dce8df; } -.examplePicker button { position: relative; min-height: 3.1rem; padding: 0.7rem 0.5rem; border: 0; border-bottom: 3px solid transparent; background: transparent; color: #50695d; font-size: 0.76rem; } -.examplePicker button[aria-pressed='true'] { border-bottom-color: #654b87; color: #654b87; font-weight: 700; } -.examplePicker button:hover { background: #f4f0fa; color: #654b87; } -.page .examplePicker button:focus-visible { outline-offset: -4px; } -.page .workbench :is(button, pre, a):focus-visible { outline-color: #654b87; } -.fileName { display: flex; align-items: center; gap: 0.55rem; margin: 1.2rem 1.5rem 0.6rem; font-size: 0.7rem; color: #50695d; } -.fileName > span:first-child { color: #654b87; font-weight: 700; } -.fileName > span:last-child { margin-left: auto; color: #50695d; font-size: 0.65rem; } -.page .code { min-height: 16rem; margin: 0; padding: 0.5rem 1.5rem 1rem; background: #fff !important; border-radius: 0; color: #214b3c !important; font-size: 0.77rem; line-height: 1.85; tab-size: 4; overflow-x: auto; } -.page .code code { display: block; border: 0; padding: 0; background: transparent !important; color: #214b3c !important; font-size: inherit !important; } -.page .code span, -:global([data-theme='dark']) .page .code span { color: var(--preview-token, #214b3c) !important; } -.page .code .lineNumber { --preview-token: #607568; display: inline-block; width: 2.1rem; user-select: none; } -.testResults { min-height: 9.8rem; border-top: 1px solid #dce8df; padding: 1rem 1.5rem; background: #f4f9f5; } -.resultsHeading { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 0.65rem; font-size: 0.72rem; } -.resultsHeading strong { color: #286044; font-weight: 600; } -.testResults ul { padding: 0; margin: 0; list-style: none; } -.testResults li { display: flex; align-items: center; gap: 0.55rem; padding: 0.2rem 0; font-family: var(--ifm-font-family-monospace); font-size: 0.7rem; } -.testResults li svg { flex-shrink: 0; width: 1rem; height: 1rem; color: #286044; } -.testResults li > span:nth-child(2) { overflow-wrap: anywhere; } -.testResults li > span:last-child { margin-left: auto; font-family: 'Space Grotesk', sans-serif; color: #50695d; font-size: 0.65rem; } -.exampleNote { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 4rem; padding: 0.8rem 1.5rem; background: #e4def3; font-size: 0.7rem; } -.page .exampleNote p { color: #513c6e; margin: 0; max-width: 30ch; } -.page .exampleNote a { color: #513c6e; white-space: nowrap; text-decoration: underline; font-weight: 600; } -.compilePath { display: flex; align-items: center; gap: 1.3rem; border-top: 1px solid var(--line); padding: 1.4rem 0; font-size: 0.82rem; } -.pathLine { flex: 1; height: 1px; background: #8eb69f; position: relative; } -.pathLine::after { content: ''; position: absolute; right: 0; top: -3px; width: 7px; height: 7px; border-top: 1px solid #8eb69f; border-right: 1px solid #8eb69f; transform: rotate(45deg); } -.parallelMark { display: flex; flex-direction: column; gap: 4px; } -.parallelMark i { width: 1.8rem; height: 3px; background: var(--forest); border-radius: 2px; } +/* Hero */ +.hero { padding: 4.5rem 0 5rem; } +.heroCopy { margin-bottom: 3rem; } +.heroAside { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem 3rem; margin-top: 2rem; } +.heroTitle { margin: 0; font-size: clamp(2.6rem, 7.2vw, 6rem); font-weight: 800; line-height: 0.98; letter-spacing: -0.055em; } +.heroTitle span { display: block; } +.heroLead { margin: 0; max-width: 40ch; font-size: 1.12rem; line-height: 1.6; } +.actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; } -.quickStart { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 4rem; padding-block: 5.5rem; } -.page .quickStartIntro h2 { font-size: 2.25rem; } -.quickStartIntro p { font-size: 0.9rem; } -.quickStartIntro a { font-size: 0.85rem; text-decoration: underline; } -.installCommands { min-width: 0; } -.installCommands ol { list-style: none; padding: 0; margin: 0; } -.installCommands li { display: flex; align-items: center; gap: 1.2rem; padding: 1.1rem 0; border-bottom: 1px solid var(--line); } -.installCommands li:first-child { padding-top: 0; } -.stepNumber { display: grid; flex-shrink: 0; place-items: center; width: 1.6rem; height: 1.6rem; border: 1px solid var(--line); border-radius: 50%; font-size: 0.75rem; } -.installCommands li > div { min-width: 0; flex: 1; } -.stepLabel { display: block; margin-bottom: 0.3rem; font-size: 0.72rem; color: var(--muted); } -.page .installCommands code { border: 0; padding: 0; background: transparent !important; color: var(--forest) !important; font-size: 0.83rem; overflow-wrap: anywhere; } -.installCommands button { border: 1px solid var(--line); background: transparent; color: var(--forest); border-radius: 4px; font-size: 0.7rem; padding: 0.5rem 0.6rem; min-height: 2.5rem; } -.installCommands button:hover { background: var(--mint); } -.copyStatus { margin: 0.5rem 0 0; font-size: 0.72rem; } +/* Run panel */ +.run { margin: 0; padding: 1.5rem 1.75rem 1.25rem; background: var(--run-bg); border: 1px solid var(--run-border); border-radius: 14px; color: var(--run-text); font-family: var(--ifm-font-family-monospace); font-size: 0.8rem; font-variant-ligatures: none; } +.runCommand { color: var(--run-text); } +.prompt { color: var(--run-pass); margin-right: 0.4rem; } +.page .runDiscovery { margin: 0.35rem 0 1.4rem; color: var(--run-muted); } +.lanes { position: relative; display: grid; gap: 0.55rem; } +.lane { display: grid; grid-template-columns: 5.5rem 1fr; align-items: center; gap: 1rem; } +.laneName { color: var(--run-muted); font-size: 0.72rem; } +.track { position: relative; height: 2rem; border-radius: 6px; background: var(--run-rail); } +.bar { position: absolute; top: 0; bottom: 0; display: flex; align-items: center; gap: 0.3rem; padding: 0 0.55rem; overflow: hidden; border-radius: 6px; background: var(--run-bar); color: var(--run-bar-text); font-size: 0.7rem; white-space: nowrap; } +.barDone { background: var(--run-pass); color: var(--run-pass-text); font-weight: 500; } +.barLabel { overflow: hidden; text-overflow: ellipsis; } +.bar svg { flex-shrink: 0; width: 0.9rem; height: 0.9rem; margin-left: auto; } +.playhead { position: absolute; top: -0.4rem; bottom: -0.4rem; left: calc(6.5rem + (100% - 6.5rem) * var(--playhead)); width: 1px; background: var(--run-text); opacity: 0.5; } +.runSummary { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1.5rem; margin-top: 1.4rem; padding-top: 1rem; border-top: 1px solid var(--run-rail); color: var(--run-muted); } +.runSummary strong { color: var(--run-text); font-weight: 700; } +.verdict { display: inline-flex; align-items: center; gap: 0.35rem; min-width: 6rem; color: var(--run-text); font-weight: 700; } +.verdictPassed { color: var(--run-pass); } +.verdict svg { width: 1rem; height: 1rem; } +.page .replay { margin-left: auto; min-height: 2.25rem; padding: 0.3rem 0.8rem; border: 1px solid var(--run-bar); border-radius: 6px; background: transparent; color: var(--run-text); font-size: 0.75rem; } +.page .replay:hover:not(:disabled) { background: var(--run-bar); } +.page .replay:disabled { cursor: default; opacity: 0.45; } +.page .replay:focus-visible { outline-color: var(--run-pass); } -.architecture { background: var(--mint); padding-block: 5.5rem; } -.architectureGrid { display: grid; grid-template-columns: 1fr 1fr; gap: 7rem; } -.architectureIntro > p { max-width: 36ch; line-height: 1.7; margin-block: 1.5rem; } -.architectureIntro > a { font-size: 0.85rem; } -.discoveryDiagram { display: grid; grid-template-columns: repeat(3, 1fr); width: min(100%, 340px); margin-top: 3rem; text-align: center; } -.discoveryDiagram > span { justify-self: center; padding: 0.4rem 0.8rem; background: var(--paper); border: 1px solid var(--line); border-radius: 4px; font-family: var(--ifm-font-family-monospace); font-size: 0.75rem; } -.discoveryBus { grid-column: 1 / -1; height: 1.6rem; margin-inline: 16.66%; border: solid #8eb69f; border-width: 0 1px 1px; background: linear-gradient(#8eb69f, #8eb69f) center / 1px 100% no-repeat; } -.discoveryDiagram > strong { grid-column: 1 / -1; position: relative; margin-top: 1.5rem; padding: 0.7rem; border: 1px solid var(--forest); border-radius: 5px; font-size: 0.85rem; font-weight: 500; } -.discoveryDiagram > strong::before { content: ''; position: absolute; width: 1px; height: 1.5rem; bottom: 100%; left: 50%; background: #8eb69f; } -.discoveryOutput { grid-column: 1 / -1; display: flex; align-items: center; justify-content: center; gap: 0.4rem; padding-top: 0.8rem; font-size: 0.7rem; } -.discoveryOutput svg { width: 1rem; height: 1rem; } -.featureList article { padding: 1.8rem 0; border-bottom: 1px solid var(--line); } -.featureList article:first-child { padding-top: 0; } -.featureList article:last-child { border: 0; padding-bottom: 0; } -.featureList h3 { font-size: 1.45rem; } -.featureList p { max-width: 48ch; line-height: 1.7; font-size: 0.95rem; } -.featureList a { font-size: 0.8rem; text-decoration: underline; } +/* Write, Build, Run */ +.stage { padding-block: 6rem; border-top: 1px solid var(--tunit-border); } +.stageTinted { background: var(--tunit-surface); } +.stageGrid { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.5fr); gap: 4rem; align-items: start; } +.stageIntro { position: sticky; top: calc(var(--ifm-navbar-height) + 2rem); } +.page .stageIntro h2 { margin: 0 0 1rem; font-size: clamp(3.4rem, 6vw, 5.2rem); font-weight: 800; line-height: 1; letter-spacing: -0.055em; } +.stageIntro p { max-width: 34ch; font-size: 1.05rem; line-height: 1.65; } -.ecosystem { padding-block: 5.5rem; } -.sectionHeading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: 2.5rem; } -.sectionHeading h2 { margin: 0; } -.sectionHeading p { max-width: 27ch; margin: 0; line-height: 1.6; } -.integrationList { display: grid; } -.integration { display: grid; grid-template-columns: 1fr 1.2fr 2fr auto; gap: 2rem; align-items: center; border-top: 1px solid var(--line); padding: 1.7rem 0; text-decoration: none !important; } -.integration:last-child { border-bottom: 1px solid var(--line); } -.integrationKind { color: var(--muted); font-size: 0.75rem; } -.integration h3 { font-size: 1.3rem; margin: 0; } -.integration p { font-size: 0.83rem; line-height: 1.65; margin: 0; max-width: 44ch; } -.integrationAction { font-size: 0.75rem; } -.integrationAction > span { padding-left: 0.5rem; } -.integration:hover h3, .integration:hover .integrationAction { color: var(--plum); text-decoration: underline; text-underline-offset: 4px; } -.benchmarkNote { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: 3rem; padding: 2rem; background: var(--lilac); border-radius: 8px; } -.page .benchmarkNote h3 { color: #513c6e; font-size: 1.5rem; } -.page .benchmarkNote p { color: #513c6e; font-size: 0.88rem; margin: 0; max-width: 60ch; } -.page .benchmarkNote a { border-color: #654b87; color: #513c6e; font-size: 0.8rem; } -.page .benchmarkNote a:hover { background: #654b87; color: #fff; } +.editor { min-width: 0; overflow: hidden; background: var(--tunit-code); border: 1px solid var(--tunit-border); border-radius: 14px; } +.editorTabs { display: flex; align-items: stretch; gap: 0.25rem; padding: 0.5rem 0.75rem 0; border-bottom: 1px solid var(--tunit-border); background: var(--tunit-surface); } +.editorTabs button { min-height: 2.6rem; padding: 0.4rem 0.9rem; border: 1px solid transparent; border-bottom: 0; border-radius: 8px 8px 0 0; background: transparent; color: var(--tunit-muted); font-size: 0.85rem; font-weight: 500; } +.editorTabs button:hover { color: var(--tunit-ink); } +.editorTabs button[aria-pressed='true'] { margin-bottom: -1px; border-color: var(--tunit-border); background: var(--tunit-code); color: var(--tunit-ink); box-shadow: inset 0 2px 0 var(--tunit-accent); font-weight: 650; } +.page .editorTabs button:focus-visible { outline-offset: -3px; } +.editorFile { align-self: center; margin-left: auto; color: var(--tunit-muted); font-family: var(--ifm-font-family-monospace); font-size: 0.72rem; } -.nextSteps { background: var(--mint); padding-block: 4.5rem; } -.nextStepsGrid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 7rem; } -.nextSteps h2 { margin-bottom: 2rem; } -.migration { padding-left: 2rem; border-left: 1px solid var(--line); } -.migration h3 { font-size: 1.45rem; } -.migration p { max-width: 40ch; line-height: 1.7; } -.migration a { font-size: 0.85rem; } +.page .code { min-height: 15rem; margin: 0; padding: 1.25rem 1.25rem 1rem 0.75rem; background: transparent; border-radius: 0; color: var(--tunit-ink); font-size: 0.82rem; line-height: 1.8; tab-size: 4; overflow-x: auto; } +.page .code code { display: block; padding: 0; border: 0; background: transparent; color: inherit; font-size: inherit; } +.lineNumber { display: inline-block; width: 2.25rem; padding-right: 0.9rem; color: var(--syntax-comment); text-align: right; user-select: none; } +.code :global(.token.keyword) { color: var(--syntax-keyword); } +.code :global(.token.string) { color: var(--syntax-string); } +.code :global(.token:is(.function, .method)) { color: var(--syntax-function); } +.code :global(.token:is(.class-name, .builtin)) { color: var(--syntax-class); } +.code :global(.token:is(.number, .boolean)) { color: var(--syntax-number); } +.code :global(.token.comment) { color: var(--syntax-comment); } -@media (min-width: 1600px) { .heroGrid { padding-block: 4.5rem; } } -@media (max-width: 1100px) { - .container { width: calc(100% - 4rem); } - .heroGrid { gap: 2rem; grid-template-columns: 0.85fr 1.15fr; } - .wordmark { font-size: 10vw; } - .architectureGrid, .nextStepsGrid { gap: 4rem; } - .integration { grid-template-columns: 0.9fr 1.2fr 1.8fr; gap: 1.5rem; } - .integrationAction { display: none; } -} +.results { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.75rem 2rem; padding: 1rem 1.25rem 1.1rem; border-top: 1px solid var(--tunit-border); } +.results ul { display: grid; gap: 0.25rem; margin: 0; padding: 0; list-style: none; } +.results li { display: flex; align-items: center; gap: 0.45rem; color: var(--tunit-ink); font-family: var(--ifm-font-family-monospace); font-size: 0.78rem; } +.results li svg { flex-shrink: 0; width: 1.1rem; height: 1.1rem; padding: 0.1rem; border-radius: 50%; background: var(--tunit-pass-fill); color: #fff; } +.page .results p { align-self: end; max-width: 34ch; margin: 0; font-size: 0.88rem; line-height: 1.55; } -@media (max-width: 800px) { - .heroGrid { grid-template-columns: 1fr; gap: 2.5rem; padding-top: 2rem; } - .heroCopy { display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem; align-items: start; } - .wordmark { grid-column: 1 / -1; font-size: 8rem; margin-bottom: 1.5rem; } - .page .heroTitle { grid-row: span 2; font-size: 2.8rem; } - .heroLead { margin-bottom: 0; font-size: 0.95rem; } - .actions { gap: 1rem; margin-top: 1rem; } - .heroFootnote { grid-column: 1 / -1; margin-top: 1.3rem; } - .workbench { max-width: 620px; width: 100%; justify-self: center; } - .quickStart { grid-template-columns: 1fr; gap: 2rem; } - .quickStartIntro h2 br, .quickStartIntro p br { display: none; } - .architectureGrid { grid-template-columns: 1fr 1fr; gap: 2.5rem; } - .integration { grid-template-columns: 1fr 1.3fr; gap: 0.5rem 1.5rem; } - .integrationKind { grid-column: 1; } - .integration h3 { grid-column: 1; } - .integration p { grid-column: 2; grid-row: 1 / 3; } - .benchmarkNote { align-items: start; flex-direction: column; gap: 1.2rem; } - .nextStepsGrid { gap: 2rem; } -} +.buildBody { display: grid; gap: 3rem; min-width: 0; } +.diagnostic { margin: 0; overflow: hidden; background: var(--tunit-paper); border: 1px solid var(--tunit-border); border-radius: 14px; } +.diagnostic .code { min-height: 0; } +.squiggle { text-decoration: underline wavy var(--tunit-fail); text-decoration-thickness: 1.5px; text-underline-offset: 4px; text-decoration-skip-ink: none; } +.diagnostic figcaption { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem 0.75rem; padding: 0.9rem 1.25rem; border-top: 1px solid var(--tunit-border); background: var(--tunit-danger-surface); color: var(--tunit-danger); font-size: 0.88rem; } +.diagnosticId { font-family: var(--ifm-font-family-monospace); font-size: 0.78rem; font-weight: 700; } +.points { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; } +.points h3 { font-size: 1.25rem; letter-spacing: -0.02em; } +.points p { line-height: 1.65; } -@media (max-width: 580px) { - .container { width: calc(100% - 2.5rem); } - .hero { padding-top: 1.2rem; } - .heroIntro { font-size: 0.72rem; } - .heroIntro > a { display: none; } - .heroCopy { display: block; } - .wordmark { font-size: clamp(6.2rem, 24vw, 8rem); } - .page .heroTitle { font-size: 2.75rem; } - .heroLead { max-width: 32ch; } - .actions { margin-top: 1.5rem; gap: 1.5rem; } - .heroFootnote { font-size: 0.7rem; } - .heroGrid { padding-bottom: 2rem; } - .workbenchHeading { padding: 1rem; font-size: 0.83rem; } - .examplePicker { padding: 0 0.5rem; gap: 0; justify-content: space-between; } - .examplePicker button { font-size: 0.7rem; padding-inline: 0.35rem; } - .fileName { margin-inline: 1rem; font-size: 0.65rem; } - .fileName > span:last-child { font-size: 0.6rem; } - .page .code { padding-inline: 0.7rem; font-size: 0.72rem; min-height: 14rem; } - .page .code .lineNumber { width: 1.6rem; } - .testResults { padding-inline: 1rem; } - .testResults li { font-size: 0.65rem; } - .exampleNote { padding-inline: 1rem; font-size: 0.65rem; } - .compilePath { gap: 0.6rem; font-size: 0.62rem; } - .compilePath > span:not(.pathLine) { max-width: 25%; } - .parallelMark { display: none; } - .quickStart, .architecture, .ecosystem { padding-block: 3.5rem; } - .installCommands li { gap: 0.65rem; } - .page .installCommands code { font-size: 0.72rem; } - .installCommands button { padding-inline: 0.4rem; font-size: 0.65rem; } - .stepNumber { width: 1.4rem; height: 1.4rem; } - .architectureGrid, .nextStepsGrid { grid-template-columns: 1fr; gap: 2.5rem; } - .discoveryDiagram { margin-top: 2rem; } - .sectionHeading { display: block; } - .sectionHeading p { margin-top: 1rem; max-width: 32ch; } - .integration { grid-template-columns: 1fr; padding-block: 1.4rem; } - .integration p { grid-column: 1; grid-row: auto; } - .integrationAction { display: block; margin-top: 0.4rem; } - .benchmarkNote { padding: 1.5rem; } - .page .benchmarkNote h3 { font-size: 1.35rem; } - .nextSteps { padding-block: 3.5rem; } - .migration { border-left: 0; border-top: 1px solid var(--line); padding: 2rem 0 0; } +.integrations { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 0; padding: 0; overflow: hidden; list-style: none; background: var(--tunit-border); border: 1px solid var(--tunit-border); border-radius: 14px; } +.integrations a { display: block; height: 100%; padding: 1.6rem 1.6rem 1.4rem; background: var(--tunit-paper); color: inherit; text-decoration: none; } +.integrations a:hover { background: var(--tunit-surface); } +.integrations a:hover h3 { color: var(--tunit-accent); } +.integrations h3 { margin-bottom: 0.4rem; font-size: 1.3rem; letter-spacing: -0.025em; } +.page .integrations p { margin: 0; font-size: 0.92rem; font-weight: 400; line-height: 1.55; } +.page .benchmarks { margin: 1.5rem 0 0; font-size: 1rem; } + +/* Start */ +.start { padding-block: 6rem; background: var(--tunit-surface); border-top: 1px solid var(--tunit-border); } +.startGrid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 5rem; align-items: end; } +.page .start h2 { max-width: 16ch; margin-bottom: 2rem; font-size: clamp(2.2rem, 4vw, 3.2rem); font-weight: 800; line-height: 1.05; letter-spacing: -0.045em; } +.terminal { display: grid; gap: 0.25rem; margin: 0; padding: 1rem 1.25rem; list-style: none; background: var(--run-bg); border-radius: 12px; } +.terminal li { display: flex; align-items: center; gap: 0.25rem; min-height: 2.75rem; } +.page .terminal code { flex: 1; min-width: 0; padding: 0; border: 0; background: transparent; color: var(--run-text); font-size: 0.85rem; overflow-wrap: anywhere; } +.page .terminal button { min-height: 2.25rem; padding: 0.3rem 0.75rem; border: 1px solid var(--run-bar); border-radius: 6px; background: transparent; color: var(--run-text); font-size: 0.75rem; } +.page .terminal button:hover { background: var(--run-bar); } +.page .terminal button:focus-visible { outline-color: var(--run-pass); } +.page .copyStatus { min-height: 1.5rem; margin: 0.5rem 0 1rem; font-size: 0.8rem; } +.migration { padding-left: 2rem; border-left: 3px solid var(--tunit-accent); } +.migration h3 { font-size: 1.4rem; letter-spacing: -0.025em; } +.migration p { max-width: 40ch; line-height: 1.65; } + +@media (max-width: 996px) { + .stageGrid, .startGrid { grid-template-columns: 1fr; gap: 2rem; } + .stageIntro { position: static; } + .stageIntro p { max-width: 52ch; } + .stage, .start { padding-block: 4.5rem; } } -@media (prefers-reduced-motion: reduce) { .page *, .page *::before, .page *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; } } +@media (max-width: 640px) { + .container { width: calc(100% - 2rem); } + .hero { padding: 2.5rem 0 3rem; } + .heroCopy { margin-bottom: 2rem; } + .heroLead { font-size: 1rem; } + .run { padding: 1rem; font-size: 0.72rem; } + .lane { grid-template-columns: 1fr; gap: 0.25rem; } + .laneName { font-size: 0.65rem; } + .playhead { display: none; } + .page .replay { margin-left: 0; } + .points, .integrations { grid-template-columns: 1fr; } + .page .code { font-size: 0.74rem; padding-right: 0.75rem; } + .lineNumber { width: 1.75rem; padding-right: 0.6rem; } + .editorTabs { padding-inline: 0.4rem; } + .editorTabs button { padding-inline: 0.6rem; font-size: 0.8rem; } + .editorFile { display: none; } + .migration { padding-left: 1.25rem; } +} diff --git a/docs/src/pages/index.tsx b/docs/src/pages/index.tsx index b7395831d3e..603be67806f 100644 --- a/docs/src/pages/index.tsx +++ b/docs/src/pages/index.tsx @@ -1,13 +1,143 @@ import Link from '@docusaurus/Link'; import Layout from '@theme/Layout'; import {Highlight, themes} from 'prism-react-renderer'; -import {useState, type CSSProperties, type JSX} from 'react'; +import {useCallback, useEffect, useRef, useState, type CSSProperties, type JSX} from 'react'; import styles from './index.module.css'; +/* A representative run: start and end are fractions of the run's duration. */ +const runDurationSeconds = 1.42; +const lanes = [ + [ + {name: 'Add(1, 2, 3)', start: 0, end: 0.1}, + {name: 'Add(5, 8, 13)', start: 0.11, end: 0.21}, + {name: 'Checkout_applies_discount', start: 0.22, end: 0.55}, + {name: 'Orders_api_returns_201', start: 0.56, end: 0.93}, + ], + [ + {name: 'Greeting_contains_name', start: 0, end: 0.18}, + {name: 'Login_page_shows_errors', start: 0.19, end: 0.71}, + {name: 'Token_expires', start: 0.72, end: 0.86}, + ], + [ + {name: 'Parses_iso_dates', start: 0, end: 0.15}, + {name: 'Cart_total_includes_tax', start: 0.16, end: 0.36}, + {name: 'Search_ranks_exact_matches', start: 0.37, end: 0.68}, + {name: 'Invoice_pdf_renders', start: 0.69, end: 1}, + ], + [ + {name: 'Mock_repository_is_called', start: 0, end: 0.24}, + {name: 'Queue_retries_twice', start: 0.25, end: 0.58}, + {name: 'Settings_round_trip', start: 0.59, end: 0.79}, + ], +]; +const testCount = lanes.reduce((total, lane) => total + lane.length, 0); + +function Tick(): JSX.Element { + return ; +} + +function RunPanel(): JSX.Element { + // Server render shows the finished run; the browser replays it once on load. + const [progress, setProgress] = useState(1); + const frame = useRef(0); + + const play = useCallback(() => { + cancelAnimationFrame(frame.current); + if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) { + setProgress(1); + return; + } + const duration = 2600; + const begin = performance.now(); + const step = (now: number) => { + const t = Math.min((now - begin) / duration, 1); + setProgress(t); + if (t < 1) frame.current = requestAnimationFrame(step); + }; + setProgress(0); + frame.current = requestAnimationFrame(step); + }, []); + + useEffect(() => { + play(); + return () => cancelAnimationFrame(frame.current); + }, [play]); + + const passed = lanes.flat().filter(test => test.end <= progress).length; + const done = progress >= 1; + + return ( +
+ + + +
+ + + + +
+
+ ); +} + +function Hero(): JSX.Element { + return ( +
+
+
+

+ Found while you build. + Run all at once. +

+
+

+ TUnit is a testing framework for modern .NET. A source generator finds your tests + at compile time, so they start immediately and run in parallel by default. +

+
+ Get started + Why TUnit? +
+
+
+ +
+
+ ); +} + const examples = [ { - label: 'Data-driven tests', + label: 'Data-driven', file: 'CalculatorTests.cs', code: `[Test] [Arguments(1, 2, 3)] @@ -19,11 +149,11 @@ public async Task Add(int a, int b, int expected) .IsEqualTo(expected); }`, results: ['Add(1, 2, 3)', 'Add(5, 8, 13)', 'Add(-1, 1, 0)'], - note: 'One test. Three cases. Discovered at compile time.', + note: 'One method, three test cases, each reported on its own.', href: '/docs/writing-tests/data-driven-overview', }, { - label: 'Fluent assertions', + label: 'Assertions', file: 'GreetingTests.cs', code: `[Test] public async Task Greeting_contains_name() @@ -35,11 +165,11 @@ public async Task Greeting_contains_name() .And.Contains("Ada"); }`, results: ['Greeting_contains_name'], - note: 'Awaitable assertions that read like your intent.', + note: 'Assertions are awaited and chain with And and Or.', href: '/docs/assertions/getting-started', }, { - label: 'Lifecycle hooks', + label: 'Hooks', file: 'LifecycleTests.cs', code: `[Before(Test)] public void Setup() => _value = 42; @@ -52,110 +182,176 @@ public async Task Setup_runs_before_test() private int _value;`, results: ['Setup_runs_before_test'], - note: 'Setup and cleanup, right where they belong.', + note: 'Setup and cleanup at test, class, assembly, or session level.', href: '/docs/writing-tests/hooks', }, ]; -const installSteps = [ - {label: 'Install the template', command: 'dotnet new install TUnit.Templates'}, - {label: 'Create your project', command: 'dotnet new TUnit -n MyTests'}, - {label: 'Run your tests', command: 'dotnet run --project MyTests'}, -]; +type Token = {types: string[]; content: string}; +type TokenPropsGetter = (input: {token: Token}) => {style?: CSSProperties; className: string; children: string}; -const integrations = [ - {title: 'ASP.NET Core', kind: 'API tests', copy: 'Test your endpoints with isolated clients and shared infrastructure.', href: '/docs/examples/aspnet'}, - {title: 'Aspire', kind: 'Distributed apps', copy: 'Bring your whole application into the test lifecycle.', href: '/docs/examples/aspire'}, - {title: 'Playwright', kind: 'Browser tests', copy: 'Give every test a clean browser context and page.', href: '/docs/examples/playwright'}, - {title: 'TUnit.Mocks', kind: 'Test doubles', copy: 'Set up and verify source-generated, AOT-compatible mocks.', href: '/docs/writing-tests/mocking'}, -]; +/* Underlines a line the way an editor marks a diagnostic, leaving its indentation alone. */ +function FlaggedTokens({line, getTokenProps}: {line: Token[]; getTokenProps: TokenPropsGetter}): JSX.Element { + const indent = line[0]?.content.match(/^\s*/)?.[0] ?? ''; + const tokens = line.map((token, index) => index === 0 ? {...token, content: token.content.slice(indent.length)} : token); + return ( + <> + {indent} + + {tokens.map((token, index) => { + const {style: _style, ...tokenProps} = getTokenProps({token}); + return ; + })} + + + ); +} -function Checkmark(): JSX.Element { - return ; +function CodeLines({code, flaggedLine}: {code: string; flaggedLine?: number}): JSX.Element { + return ( + + {({tokens, getLineProps, getTokenProps}) => ( + + {tokens.map((line, lineIndex) => { + const {style: _lineStyle, ...lineProps} = getLineProps({line}); + return ( +
+ + {lineIndex === flaggedLine ? : line.map((token, tokenIndex) => { + const {style: _tokenStyle, ...tokenProps} = getTokenProps({token}); + return ; + })} +
+ ); + })} +
+ )} +
+ ); } -function TestWorkbench(): JSX.Element { +function Write(): JSX.Element { const [selected, setSelected] = useState(0); const example = examples[selected]; return ( -
-
- A little C#. A lot covered. - .NET -
-
- {examples.map((item, index) => ( - - ))} -
-
-
{example.file}Class members
- - {({tokens, getLineProps, getTokenProps}) => ( -
-              
-                {tokens.map((line, lineIndex) => (
-                  
- - {line.map((token, tokenIndex) => { - const props = getTokenProps({token}); - return ; - })} -
- ))} -
-
- )} -
-
-
Example results{example.results.length} passed
-
    - {example.results.map(result =>
  • {result}Passed
  • )} -
+
+
+
+

Write.

+

Tests are plain C# methods with an attribute. Data, hooks, and assertions all use the same small set of ideas.

+ Write your first test
-
-

{example.note}

- Read the guide +
+
+ {examples.map((item, index) => ( + + ))} + {example.file} +
+
+
+
+
    + {example.results.map(result =>
  • {result}
  • )} +
+

{example.note} Read the guide

+
+
-
+
); } -function Hero(): JSX.Element { +const analyzerCode = `[Test] +public async Task Cart_total_includes_tax() +{ + var total = _cart.Total(); + + Assert.That(total).IsEqualTo(108m); +}`; + +function Build(): JSX.Element { return ( -
-
-
The testing framework for modern .NETOpen source, from the start
-
-
-

TUnit

-

Give your tests
a head start.

-

Discover tests while you compile. Run them in parallel. - Get back to the code you came to write.

-
- Start testing - Why TUnit? +
+
+
+

Build.

+

The compiler already knows your code. TUnit puts that knowledge to work before a single test runs.

+
+
+
+
+
+ TUnitAssertions0002 + Assert statements must be awaited. All TUnit assertions return Task. +
+
+
+
+

Tests are found at compile time.

+

A source generator writes the code that registers each test. There is no reflection scan at startup, and test projects can publish with Native AOT.

+ Native AOT support +
+
+

Mistakes show up in your editor.

+

Analyzers flag an assertion you forgot to await, a hook with the wrong signature, or a data source that does not match its parameters.

+ Assertion diagnostics
-

Source generated. Async native. AOT ready.

-
-
- Your C# tests
+
+ ); +} + +const integrations = [ + {title: 'ASP.NET Core', copy: 'Test your endpoints with isolated clients and shared infrastructure.', href: '/docs/examples/aspnet'}, + {title: 'Aspire', copy: 'Bring your whole distributed application into the test lifecycle.', href: '/docs/examples/aspire'}, + {title: 'Playwright', copy: 'Give every test a clean browser context and page.', href: '/docs/examples/playwright'}, + {title: 'TUnit.Mocks', copy: 'Source-generated, AOT-compatible mocks you set up and verify.', href: '/docs/writing-tests/mocking'}, +]; + +function Run(): JSX.Element { + return ( +
+
+
+

Run.

+

Tests run in parallel unless you say otherwise. Add dependencies, limits, or shared resources when a suite needs more control.

+ Control parallel execution +
+
+
    + {integrations.map(item => ( +
  • + +

    {item.title}

    +

    {item.copy}

    + +
  • + ))} +
+

+ How fast is fast? See the benchmarks and the method behind them. +

-
+ ); } -function QuickStart(): JSX.Element { +const installSteps = [ + {label: 'Install the template', command: 'dotnet new install TUnit.Templates'}, + {label: 'Create a project', command: 'dotnet new TUnit -n MyTests'}, + {label: 'Run the tests', command: 'dotnet run --project MyTests'}, +]; + +function Start(): JSX.Element { const [copyStatus, setCopyStatus] = useState<{index: number; ok: boolean} | null>(null); async function copyCommand(command: string, index: number) { @@ -168,82 +364,40 @@ function QuickStart(): JSX.Element { } return ( -
-
-

Meet your next
test project.

-

Have the .NET SDK?
You’re three commands away.

- Installation guide -
-
-
    - {installSteps.map((step, index) => ( -
  1. - -
    {step.label}{step.command}
    - -
  2. - ))} -
-

{copyStatus ? (copyStatus.ok ? `${installSteps[copyStatus.index].label}: command copied.` : 'Couldn’t copy automatically. Select and copy the command above.') : '\u00a0'}

-
-
- ); -} - -function Architecture(): JSX.Element { - return ( -
-
-
-

Good tests.
Less machinery.

-

The compiler already knows your code. TUnit puts that knowledge to work before your tests even start.

- Explore the design -
- ); -} - -const integrations = [ - {title: 'ASP.NET Core', copy: 'Test your endpoints with isolated clients and shared infrastructure.', href: '/docs/examples/aspnet'}, - {title: 'Aspire', copy: 'Bring your whole distributed application into the test lifecycle.', href: '/docs/examples/aspire'}, - {title: 'Playwright', copy: 'Give every test a clean browser context and page.', href: '/docs/examples/playwright'}, - {title: 'TUnit.Mocks', copy: 'Source-generated, AOT-compatible mocks you set up and verify.', href: '/docs/writing-tests/mocking'}, +
+ +
+ TUnitAssertions0002 + Assert statements must be awaited. All TUnit assertions return Task. +
+
+ + ), + }, + { + name: 'Tests_whole_systems_not_just_units', + body: ( + <> +
+

The same framework drives integration tests, with shared infrastructure that starts once and is cleaned up after the last test using it finishes.

+ See the benchmarks +
+
    +
  • ASP.NET CoreEndpoints with isolated clients
  • +
  • AspireYour whole distributed app
  • +
  • PlaywrightA clean browser page per test
  • +
  • TUnit.MocksSource-generated, AOT-safe mocks
  • +
+ + ), + }, ]; -function Run(): JSX.Element { +function TestName({name}: {name: string}): JSX.Element { + const parts = name.split('_'); + return <>{parts.map((part, index) => {part}{index < parts.length - 1 && <>_})}; +} + +function Claims(): JSX.Element { return ( -
-
-
-

Run.

-

Tests run in parallel unless you say otherwise. Add dependencies, limits, or shared resources when a suite needs more control.

- Control parallel execution -
-
-
    - {integrations.map(item => ( -
  • - -

    {item.title}

    -

    {item.copy}

    - -
  • - ))} -
-

- How fast is fast? See the benchmarks and the method behind them. -

+
+
+

Our claims, written as tests.

+
+ {claims.map((claim, index) => ( +
+ + +
{claim.body}
+
+ ))}
); } +/* ---------- Getting started. ---------- */ + const installSteps = [ {label: 'Install the template', command: 'dotnet new install TUnit.Templates'}, {label: 'Create a project', command: 'dotnet new TUnit -n MyTests'}, @@ -367,7 +477,7 @@ function Start(): JSX.Element {
-

Three commands to your first passing run.

+

Turn your first bar green.

    {installSteps.map((step, index) => (
  1. @@ -382,12 +492,12 @@ function Start(): JSX.Element {

    {copyStatus ? (copyStatus.ok ? `${installSteps[copyStatus.index].label}: command copied.` : 'Couldn’t copy automatically. Select the command and copy it.') : ' '}

    - Read the installation guide + Write your first test

Moving from xUnit, NUnit, or MSTest?

-

Migration guides map each attribute, assertion, and lifecycle hook you use today to its TUnit equivalent.

- Compare frameworks +

The migration guides map each attribute, assertion, and hook you use today to its TUnit equivalent.

+ Compare frameworks
@@ -396,8 +506,8 @@ function Start(): JSX.Element { export default function Home(): JSX.Element { return ( - -
+ +
); } diff --git a/docs/static/img/tunit-favicon.svg b/docs/static/img/tunit-favicon.svg index 1107a1c96d3..e253e8e41d3 100644 --- a/docs/static/img/tunit-favicon.svg +++ b/docs/static/img/tunit-favicon.svg @@ -1,6 +1,4 @@ - - - - + + diff --git a/docs/static/img/tunit-social-card.png b/docs/static/img/tunit-social-card.png index 64ecb4edf4bf4433a3b54ce4e1aebc33c8739f43..8777cf22730a2cf82786220345c72d827f8a7369 100644 GIT binary patch literal 42563 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
)}
-