diff options
27 files changed, 0 insertions, 2014 deletions
diff --git a/.github/workflows/bun-landing.yml b/.github/workflows/bun-landing.yml deleted file mode 100644 index 7fba02e51..000000000 --- a/.github/workflows/bun-landing.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: bun-landing -on: - push: - paths: - - packages/bun-landing/**/* - branches: [main] - -jobs: - build: - name: website build - runs-on: ubuntu-latest - if: github.repository_owner == 'oven-sh' - strategy: - fail-fast: false - matrix: - node-version: - - 16 - - steps: - - name: Checkout repo - uses: actions/checkout@v2 - - - name: Use Node ${{ matrix.node }} - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node }} - - - name: Install bun - uses: xhyrom/setup-bun@v0.1.8 - with: - bun-version: canary - - - name: Install global dependencies - run: bun install - - - name: Install package dependencies - run: cd packages/bun-landing && bun install - - - name: Build - run: cd packages/bun-landing && bun run build.tsx - - - name: Commit changes - uses: stefanzweifel/git-auto-commit-action@v4 - with: - commit_message: build:(landing) automated website build - token: ${{ secrets.GITHUB_TOKEN }} diff --git a/packages/bun-landing/.gitignore b/packages/bun-landing/.gitignore deleted file mode 100644 index b318aa2ae..000000000 --- a/packages/bun-landing/.gitignore +++ /dev/null @@ -1,43 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# next.js -/.next/ -/out/ -next-env.d.ts - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env.local -.env.development.local -.env.test.local -.env.production.local - -# vercel -.vercel - -**/*.trace -**/*.zip -**/*.tar.gz -**/*.tgz -**/*.log -package-lock.json -**/*.bun
\ No newline at end of file diff --git a/packages/bun-landing/README.md b/packages/bun-landing/README.md deleted file mode 100644 index 0f83c5574..000000000 --- a/packages/bun-landing/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# bun.sh - -This is the landing page for the bun.sh site and documentation. - -## Running Locally - -Install dependencies - -```bash -bun install -``` - -Run the development server: - -```bash -bun dev -``` - -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. - -## Building - -```bash -bun run build -```
\ No newline at end of file diff --git a/packages/bun-landing/bun.lockb b/packages/bun-landing/bun.lockb Binary files differdeleted file mode 100755 index 5bcc1309d..000000000 --- a/packages/bun-landing/bun.lockb +++ /dev/null diff --git a/packages/bun-landing/bunfig.toml b/packages/bun-landing/bunfig.toml deleted file mode 100644 index f191e4e10..000000000 --- a/packages/bun-landing/bunfig.toml +++ /dev/null @@ -1 +0,0 @@ -framework = "next" diff --git a/packages/bun-landing/components/CodeBlock.tsx b/packages/bun-landing/components/CodeBlock.tsx deleted file mode 100644 index 7f16dc066..000000000 --- a/packages/bun-landing/components/CodeBlock.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import * as shiki from "shiki"; - -// because we don't want to wait for it to reload everytime this page reloads -globalThis._highlighter ||= await shiki.getHighlighter({ - theme: "dracula", -}); - -const highlighter = globalThis._highlighter as shiki.Highlighter; - -export default function CodeBlock({ children, lang = "js" }) { - const html = highlighter.codeToHtml(children.trim(), { lang }); - return ( - <div className="CodeBlock" dangerouslySetInnerHTML={{ __html: html }} /> - ); -} diff --git a/packages/bun-landing/components/Layout.tsx b/packages/bun-landing/components/Layout.tsx deleted file mode 100644 index 3c2e0407a..000000000 --- a/packages/bun-landing/components/Layout.tsx +++ /dev/null @@ -1,99 +0,0 @@ -import Head from "next/head"; -import { dataURI } from "macro:./dataURI"; - -export default function Layout({ children }) { - return ( - <> - <Head> - <meta charSet="UTF-8" /> - <meta name="viewport" content="width=device-width, initial-scale=1" /> - <meta - property="og:title" - content="Bun is a fast all-in-one JavaScript runtime" - /> - <title>Bun is a fast all-in-one JavaScript runtime</title> - <meta - property="og:description" - content={`Bundle, transpile, install and run JavaScript & TypeScript - projects – all in Bun. Bun is a new JavaScript runtime with - a native bundler, transpiler, task runner and npm client built-in.`} - /> - <meta name="og:locale" content="en_US" /> - <meta name="twitter:site" content="@jarredsumner" /> - <meta name="twitter:card" content="summary_large_image" /> - <meta property="og:image" content="https://bun.sh/share.png" /> - <meta - name="description" - content={`Bundle, transpile, install and run JavaScript & TypeScript - projects – all in Bun. Bun is a new JavaScript runtime with - a native bundler, transpiler, task runner and npm client built-in.`} - /> - <meta name="theme-color" content="#fbf0df" /> - <link rel="manifest" href="manifest.json" /> - <link - rel="icon" - type="image/png" - sizes="256x256" - href="/logo-square.png" - /> - <link - rel="icon" - type="image/png" - sizes="32x32" - href="/logo-square@32px.png" - /> - <link - rel="icon" - type="image/png" - sizes="16x16" - href="/logo-square@16px.png" - /> - </Head> - <body> - <div id="header-wrap"> - <header> - <a href="/" id="logo-link" aria-label="home"> - <img - height="61px" - src={dataURI("../public/logo.svg", "components/Layout.tsx")} - alt="Bun logo" - id="logo" - /> - - <img - alt="Bun" - id="logo-text" - height="31.65px" - src={dataURI("../public/Bun@2x.png", "components/Layout.tsx")} - /> - </a> - - <nav className="Navigation"> - <ul> - <li> - <a - className="NavText" - href="https://github.com/oven-sh/bun#Reference" - > - Docs - </a> - </li> - <li> - <a className="NavText" href="https://bun.sh/discord"> - Discord - </a> - </li> - <li> - <a className="NavText" href="https://github.com/oven-sh/bun"> - GitHub - </a> - </li> - </ul> - </nav> - </header> - </div> - {children} - </body> - </> - ); -} diff --git a/packages/bun-landing/components/dataURI.ts b/packages/bun-landing/components/dataURI.ts deleted file mode 100644 index 559a9a89b..000000000 --- a/packages/bun-landing/components/dataURI.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { readFileSync } from "fs"; -import { resolve } from "path"; - -export function dataURI(expr) { - const [pathNode, relativeNode] = expr.arguments; - const path = pathNode.toString(); - const relative = relativeNode.toString(); - try { - const toLoad = resolve(process.cwd(), relative, "../", path); - const data = readFileSync(toLoad); - - return `data:${Bun.file(toLoad).type};base64, ${btoa( - String.fromCharCode(...new Uint8Array(data.buffer)), - )}`; - } catch (e) { - console.error(e); - return ""; - } -} diff --git a/packages/bun-landing/next.config.js b/packages/bun-landing/next.config.js deleted file mode 100644 index 7cd57f439..000000000 --- a/packages/bun-landing/next.config.js +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = { - reactStrictMode: true, - typescript: { - ignoreBuildErrors: true, - }, - webpack: (config) => { - // support shiki top level await - config.experiments = { ...config.experiments, ...{ topLevelAwait: true } }; - return config; - }, -}; diff --git a/packages/bun-landing/package.json b/packages/bun-landing/package.json deleted file mode 100644 index c67c236d4..000000000 --- a/packages/bun-landing/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "scripts": { - "dev": "next", - "build": "next build", - "start": "next start" - }, - "dependencies": { - "next": "12.2.3", - "react": "^18", - "react-dom": "^18", - "react-is": "^17.0.2", - "shiki": "0.10.1" - }, - "devDependencies": { - "@types/react": "^18", - "@types/node": "latest", - "bun-framework-next": "^12", - "typescript": "latest" - } -}
\ No newline at end of file diff --git a/packages/bun-landing/pages/_app.tsx b/packages/bun-landing/pages/_app.tsx deleted file mode 100644 index 2896467a5..000000000 --- a/packages/bun-landing/pages/_app.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import Layout from "../components/Layout"; -import "../styles/global.css"; - -export default function MyApp({ Component, pageProps }) { - return ( - <Layout> - <Component {...pageProps} /> - </Layout> - ); -} diff --git a/packages/bun-landing/pages/index.tsx b/packages/bun-landing/pages/index.tsx deleted file mode 100644 index 096b32cb8..000000000 --- a/packages/bun-landing/pages/index.tsx +++ /dev/null @@ -1,749 +0,0 @@ -import CodeBlock from "../components/CodeBlock"; - -const Command = ({ children, href, Tag = href ? "a" : "span" }) => ( - <Tag target="_blank" href={href} className="Tag Tag--Command"> - {children} - </Tag> -); -const WebAPI = ({ children, href, Tag = href ? "a" : "span" }) => ( - <Tag target="_blank" href={href} className="Tag Tag--WebAPI"> - {children} - </Tag> -); -const NodeJS = ({ children, href, Tag = href ? "a" : "span" }) => ( - <Tag target="_blank" href={href} className="Tag Tag--NodeJS"> - {children} - </Tag> -); -const TypeScript = ({ children, href, Tag = href ? "a" : "span" }) => ( - <Tag target="_blank" href={href} className="Tag Tag--TypeScript"> - {children} - </Tag> -); -const React = ({ children, href, Tag = href ? "a" : "span" }) => ( - <Tag target="_blank" className="Tag Tag--React"> - {children} - </Tag> -); - -const Bun = ({ children, href, Tag = href ? "a" : "span" }) => ( - <Tag target="_blank" href={href} className="Tag Tag--Bun"> - {children} - </Tag> -); - -const fmt = new Intl.NumberFormat(); - -const Label = ({ children, replace }) => { - if (replace) { - return ( - <div className="Label"> - <div className="Label-replace">{replace}</div> - <div className="Label-text">{children}</div> - </div> - ); - } - return <div className="Label">{children}</div>; -}; - -const BarGraphItem = ({ type, amount = 0, label, max = 0 }) => ( - <li - className={`BarGraphItem BarGraphItem--${type}`} - style={{ "--amount": amount, "--max": max }} - > - <div className="visually-hidden">{`${type}: ${fmt.format( - amount, - )} ${label}`}</div> - <div - style={{ "--amount": amount, "--max": max }} - className="BarGraphBar" - aria-hidden - > - <div - style={{ "--amount": amount, "--max": max }} - className="BarGraphBar-label" - > - {fmt.format(amount)} - </div> - </div> - </li> -); - -const BarGraphLabel = ({ name, version, source }) => ( - <a - href={source} - target="_blank" - className="BarGraphKeyItem" - aria-label={`${name} benchmark source`} - > - <div className="BarGraphKeyItem-label">{name}</div> - <div className="BarGraphKeyItem-value">{version}</div> - <div className="BarGraphKeyItem-viewSource">View source</div> - </a> -); - -const PerformanceClaim = ({ href, children }) => ( - <a href={href} target="_blank" className="PerformanceClaim"> - {children} - </a> -); - -const Zig = () => ( - <svg - xmlns="http://www.w3.org/2000/svg" - height="1.2rem" - className="Zig" - viewBox="0 0 400 140" - > - <title>Zig</title> - <g fill="#F7A41D"> - <g> - <polygon points="46,22 28,44 19,30" /> - <polygon - points="46,22 33,33 28,44 22,44 22,95 31,95 20,100 12,117 0,117 0,22" - shapeRendering="crispEdges" - /> - <polygon points="31,95 12,117 4,106" /> - </g> - <g> - <polygon points="56,22 62,36 37,44" /> - <polygon - points="56,22 111,22 111,44 37,44 56,32" - shapeRendering="crispEdges" - /> - <polygon points="116,95 97,117 90,104" /> - <polygon - points="116,95 100,104 97,117 42,117 42,95" - shapeRendering="crispEdges" - /> - <polygon points="150,0 52,117 3,140 101,22" /> - </g> - <g> - <polygon points="141,22 140,40 122,45" /> - <polygon - points="153,22 153,117 106,117 120,105 125,95 131,95 131,45 122,45 132,36 141,22" - shapeRendering="crispEdges" - /> - <polygon points="125,95 130,110 106,117" /> - </g> - </g> - <g fill="#121212"> - <g> - <polygon - points="260,22 260,37 229,40 177,40 177,22" - shapeRendering="crispEdges" - /> - <polygon points="260,37 207,99 207,103 176,103 229,40 229,37" /> - <polygon - points="261,99 261,117 176,117 176,103 206,99" - shapeRendering="crispEdges" - /> - </g> - <rect x="272" y="22" shapeRendering="crispEdges" width="22" height="95" /> - <g> - <polygon - points="394,67 394,106 376,106 376,81 360,70 346,67" - shapeRendering="crispEdges" - /> - <polygon points="360,68 376,81 346,67" /> - <path - d="M394,106c-10.2,7.3-24,12-37.7,12c-29,0-51.1-20.8-51.1-48.3c0-27.3,22.5-48.1,52-48.1 - c14.3,0,29.2,5.5,38.9,14l-13,15c-7.1-6.3-16.8-10-25.9-10c-17,0-30.2,12.9-30.2,29.5c0,16.8,13.3,29.6,30.3,29.6 - c5.7,0,12.8-2.3,19-5.5L394,106z" - /> - </g> - </g> - </svg> -); - -const InstallBox = ({ desktop = false }) => ( - <div - className={ - "InstallBox " + (desktop ? "InstallBox--desktop" : "InstallBox--mobile") - } - > - <div className="InstallBox-label"> - <div className="InstallBox-label-heading"> - Install Bun CLI {process.versions.bun} (beta) - </div> - <div className="InstallBox-label-subtitle"> - macOS x64 & Silicon, Linux x64, Windows Subsystem for Linux - </div> - </div> - <div className="InstallBox-code-box"> - <div className="InstallBox-curl"> - curl -fsSL https://bun.sh/install | bash - </div> - <button className="InstallBox-copy" aria-label="Copy installation script"> - copy - </button> - </div> - <a - className="InstallBox-view-source-link" - target="_blank" - href="https://bun.sh/install" - > - Show script source - </a> - </div> -); - -const Group = ({ children, ...props }) => ( - <div {...props} className="Group"> - {children} - </div> -); - -export default function LandingPage() { - return ( - <> - <div id="pitch"> - <main> - <div id="pitch-content"> - <h1 className="tagline"> - Bun is a fast all-in-one JavaScript runtime - </h1> - <p className="subtitle"> - Bundle, transpile, install and run JavaScript & TypeScript - projects — all in Bun. Bun is a new JavaScript runtime with - a native bundler, transpiler, task runner and npm client built-in. - </p> - - <InstallBox desktop /> - </div> - - <div className="Graphs Graphs--active-react"> - <div className="Tabs" role="tablist"> - <button - data-tab="react" - id="tab-react" - aria-controls="react-tab-content" - className="Tab" - role="tab" - aria-selected - tabIndex={0} - > - Bun.serve - </button> - <button - data-tab="websocket" - id="tab-websocket" - aria-controls="websocket-tab-content" - className="Tab" - role="tab" - tabIndex={-1} - > - WebSocket - </button> - <button - data-tab="sqlite" - id="tab-sqlite" - aria-controls="sqlite-tab-content" - className="Tab" - role="tab" - tabIndex={-1} - > - bun:sqlite - </button> - </div> - <div id="active-tab" className="ActiveTab"> - <div - role="tabpanel" - tabIndex={0} - id="react-tab-content" - aria-labelledby="tab-react" - className="BarGraph BarGraph--react BarGraph--horizontal BarGraph--dark" - > - <h2 className="BarGraph-heading"> - Server-side rendering React - </h2> - <p className="BarGraph-subheading"> - HTTP requests per second (Linux x64) - </p> - - <ul style={{ "--count": 3 }} className="BarGraphList"> - <BarGraphItem - type="bun" - amount={69845} - label="requests per second" - max={Math.max(69845, 16288, 12926) * 1.25} - /> - <BarGraphItem - type="node" - amount={16288} - label="requests per second" - max={Math.max(69845, 16288, 12926) * 1.25} - /> - <BarGraphItem - type="deno" - amount={12926} - label="requests per second" - max={Math.max(69845, 16288, 12926) * 1.25} - /> - </ul> - - <div style={{ "--count": 3 }} className="BarGraphKey"> - <BarGraphLabel - name="bun" - version="v0.2.0" - source="https://github.com/oven-sh/bun/blob/b0a7f8df926e91d3b2f0b3b8833ddaf55073f30e/bench/react-hello-world/react-hello-world.jsx#L27" - /> - <BarGraphLabel - name="node" - version="v18.1.0" - source="https://github.com/oven-sh/bun/blob/e55d6eed2bf9a5db30250fdd8b9be063dc949054/bench/react-hello-world/react-hello-world.node.jsx" - /> - <BarGraphLabel - name="Deno.serve()" - version="v1.26.0" - source="https://github.com/oven-sh/bun/blob/af033c02c5fbaade201abfe332f376879d9e6885/bench/react-hello-world/react-hello-world.deno.jsx" - /> - </div> - </div> - - <div - role="tabpanel" - tabIndex={-1} - id="websocket-tab-content" - aria-labelledby="tab-websocket" - className="BarGraph BarGraph--websocket BarGraph--horizontal BarGraph--dark" - > - <h2 className="BarGraph-heading">WebSocket chat server</h2> - <p className="BarGraph-subheading"> - Messages sent per second (Linux x64, 16 clients) - </p> - - <ul style={{ "--count": 3 }} className="BarGraphList"> - <BarGraphItem - type="bun" - amount={(737280).toFixed(2)} - label="messages sent per second" - max={Math.ceil(Math.max(737280, 107457, 82097) * 1.25)} - /> - <BarGraphItem - type="node" - amount={(107457).toFixed(2)} - label="messages sent per second" - max={Math.ceil(Math.max(737280, 107457, 82097) * 1.25)} - /> - <BarGraphItem - type="deno" - amount={(82097).toFixed(2)} - label="messages sent per second" - max={Math.ceil(Math.max(737280, 107457, 82097) * 1.25)} - /> - </ul> - - <div style={{ "--count": 3 }} className="BarGraphKey"> - <BarGraphLabel - name="Bun.serve()" - version="v0.2.1" - source="https://github.com/oven-sh/bun/blob/9c7eb75a9ac845d92bfdfd6cc574dc8f39bde293/bench/websocket-server/chat-server.bun.js#L1" - /> - <BarGraphLabel - name="ws (Node.js)" - version="node v18.10.0" - source="https://github.com/oven-sh/bun/blob/9c7eb75a9ac845d92bfdfd6cc574dc8f39bde293/bench/websocket-server/chat-server.node.mjs#L1" - /> - <BarGraphLabel - name="Deno.serve()" - source="https://github.com/oven-sh/bun/blob/9c7eb75a9ac845d92bfdfd6cc574dc8f39bde293/bench/websocket-server/chat-server.deno.mjs#L1" - version="v1.26.2" - /> - </div> - </div> - - <div - role="tabpanel" - tabIndex={-1} - id="sqlite-tab-content" - aria-labelledby="tab-sqlite" - className="BarGraph--sqlite BarGraph BarGraph--horizontal BarGraph--dark" - > - <h2 className="BarGraph-heading">Load a huge table</h2> - <p className="BarGraph-subheading"> - Average queries per second - </p> - - <ul style={{ "--count": 3 }} className="BarGraphList"> - <BarGraphItem - type="bun" - amount={(1000 / 14.22).toFixed(2)} - label="queries per second" - max={Math.ceil( - Math.max(1000 / 14.22, 1000 / 42.96, 1000 / 27.37) * 1.25, - )} - /> - <BarGraphItem - type="deno" - amount={(1000 / 27.37).toFixed(2)} - label="queries per second" - max={Math.ceil( - Math.max(1000 / 14.22, 1000 / 42.96, 1000 / 27.37) * 1.25, - )} - /> - <BarGraphItem - type="better-sqlite3" - amount={(1000 / 42.96).toFixed(2)} - label="queries per second" - max={Math.ceil( - Math.max(1000 / 14.22, 1000 / 42.96, 1000 / 27.37) * 1.25, - )} - /> - </ul> - - <div style={{ "--count": 3 }} className="BarGraphKey"> - <BarGraphLabel - name="bun:sqlite" - version="v0.2.0" - source="https://github.com/oven-sh/bun/blob/b0a7f8df926e91d3b2f0b3b8833ddaf55073f30e/bench/sqlite/bun.js#L9" - /> - <BarGraphLabel - name="deno (x/sqlite3)" - version="v1.26.1" - source="https://github.com/oven-sh/bun/blob/6223030360c121e272aad98c7d1c14a009c5fc1c/bench/sqlite/deno.js#L9" - /> - <BarGraphLabel - name="better-sqlite3" - source="https://github.com/oven-sh/bun/blob/e55d6eed2bf9a5db30250fdd8b9be063dc949054/bench/sqlite/node.mjs" - version="node v18.2.0" - /> - </div> - </div> - </div> - </div> - <InstallBox desktop={false} /> - </main> - </div> - <section id="explain-section"> - <div id="explain"> - <h2>Tell me more about Bun</h2> - <p> - Bun is a modern JavaScript runtime like Node or Deno. It was built - from scratch to focus on three main things: - </p> - <ul> - <li>Start fast (it has the edge in mind).</li> - <li> - New levels of performance (extending JavaScriptCore, the engine). - </li> - <li> - Being a great and complete tool (bundler, transpiler, package - manager). - </li> - </ul> - <p> - Bun is designed as a drop-in replacement for your current JavaScript - & TypeScript apps or scripts — on your local computer, server or - on the edge. Bun natively implements hundreds of Node.js and Web - APIs, including ~90% of{" "} - <a href="https://nodejs.org/api/n-api.html" target="_blank"> - Node-API - </a>{" "} - functions (native modules), fs, path, Buffer and more. - </p> - <p> - The goal of Bun is to run most of the world's JavaScript outside of - browsers, bringing performance and complexity enhancements to your - future infrastructure, as well as developer productivity through - better, simpler tooling. - </p> - <h2>Batteries included</h2> - <ul id="batteries"> - <li> - Web APIs like{" "} - <WebAPI href="https://developer.mozilla.org/en-US/docs/Web/API/fetch"> - fetch - </WebAPI> - ,{" "} - <WebAPI href="https://developer.mozilla.org/en-US/docs/Web/API/WebSocket"> - WebSocket - </WebAPI> - , and{" "} - <WebAPI href="https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream"> - ReadableStream - </WebAPI>{" "} - are built-in - </li> - <li> - <NodeJS>node_modules</NodeJS> bun implements Node.js' module - resolution algorithm, so you can use npm packages in Bun. ESM and - CommonJS are supported, but Bun internally uses ESM - </li> - <li> - In Bun, every file is transpiled.{" "} - <TypeScript>TypeScript</TypeScript> & <React>JSX</React> just - work - </li> - <li> - Bun supports <code>"paths"</code>, <code>"jsxImportSource"</code> - and more from <TypeScript>tsconfig.json</TypeScript> files - </li> - <li> - <Bun>Bun.Transpiler</Bun> Bun's JSX & TypeScript transpiler is - available as an API in Bun - </li> - <li> - use the fastest system calls available with <Bun>Bun.write</Bun>{" "} - to write, copy, pipe, send and clone files - </li> - <li> - Bun automatically loads environment variables from <Bun>.env</Bun>{" "} - files. No more{" "} - <code className="mono">require("dotenv").config()</code> - </li> - <li> - Bun ships with a fast SQLite3 client built-in{" "} - <Bun>bun:sqlite</Bun> - </li> - <li> - <NodeJS href="https://github.com/oven-sh/bun/issues/158"> - Node-API - </NodeJS>{" "} - Bun implements most of{" "} - <a - href="https://nodejs.org/api/n-api.html#node-api" - target="_blank" - > - Node-API (N-API) - </a> - . Many Node.js native modules just work - </li> - <li> - <Bun>bun:ffi</Bun> call native code from JavaScript with Bun's - low-overhead foreign function interface - </li> - <li> - <NodeJS>node:fs</NodeJS> <NodeJS>node:path</NodeJS> Bun natively - supports a growing list of Node.js core modules along with globals - like Buffer and process - </li> - </ul> - - <h2>How does Bun work?</h2> - <p> - Bun uses the{" "} - <a href="https://github.com/WebKit/WebKit/tree/main/Source/JavaScriptCore"> - JavaScriptCore - </a>{" "} - engine, which tends{" "} - <a - target="blank" - href="https://twitter.com/jarredsumner/status/1499225725492076544" - > - to start - </a>{" "} - and perform a little faster than more traditional choices like V8. - Bun is written in{" "} - <a href="https://ziglang.org/"> - <Zig></Zig> - </a> - , a low-level programming language with manual memory management. - <br /> - <br /> - Most of Bun is written from scratch including the JSX/TypeScript - transpiler, npm client, bundler, SQLite client, HTTP client, - WebSocket client and more. - </p> - <h2>Why is Bun fast?</h2> - <p> - An enormous amount of time spent profiling, benchmarking and - optimizing things. The answer is different for every part of Bun, - but one general theme:{" "} - <a href="https://ziglang.org/"> - <Zig></Zig> - </a> - 's low-level control over memory and lack of hidden control flow - makes it much simpler to write fast software.{" "} - <a href="https://github.com/sponsors/ziglang"> - Sponsor the Zig Software Foundation - </a> - . - </p> - <h2>Getting started</h2> - <p> - To install Bun, run this{" "} - <a target="_blank" href="https://bun.sh/install"> - install script - </a>{" "} - in your terminal. It downloads Bun from GitHub. - </p> - <CodeBlock lang="shell">{` -curl -fsSL https://bun.sh/install | bash - `}</CodeBlock> - <p> - {" "} - Bun's HTTP server is built on web standards like{" "} - <a - className="Identifier" - href="https://developer.mozilla.org/en-US/docs/Web/API/Request" - > - Request - </a>{" "} - and{" "} - <a - className="Identifier" - href="https://developer.mozilla.org/en-US/docs/Web/API/Response" - > - Response - </a> - </p> - <CodeBlock lang="js">{` -// http.js -export default { - port: 3000, - fetch(request) { - return new Response("Welcome to Bun!"); - }, -}; - `}</CodeBlock> - <p>Run it with Bun:</p> - <CodeBlock lang="shell">{`bun run http.js`}</CodeBlock> - <p> - Then open{" "} - <a target="_blank" href="http://localhost:3000"> - http://localhost:3000 - </a>{" "} - in your browser. - <br /> - <br /> - See{" "} - <a href="https://github.com/oven-sh/bun/tree/main/examples"> - more examples - </a>{" "} - and check out{" "} - <a href="https://github.com/oven-sh/bun#Reference">the docs</a>. If - you have any questions or want help, join{" "} - <a href="https://bun.sh/discord">Bun's Discord</a>. - </p> - - <h2>Bun CLI</h2> - <Group> - <Command>bun run</Command> - <p> - The same command for running JavaScript & TypeScript files - with bun's JavaScript runtime also runs package.json{" "} - <code className="mono">"scripts"</code>. - </p> - <strong> - Replace <code className="mono">npm run</code> with{" "} - <code className="mono">bun run</code> and save 160ms on every run. - </strong> - <br /> - <div> - Bun runs package.json scripts{" "} - <PerformanceClaim href="https://twitter.com/jarredsumner/status/1454218996983623685"> - 30x faster than <code className="mono">npm run</code> - </PerformanceClaim> - </div>{" "} - </Group> - - <Group> - <Command>bun install</Command> - <p> - <code classsName="mono">bun install</code> is an npm-compatible - package manager. You probably will be surprised by how much faster - copying files can get. - </p> - <strong> - Replace <code className="mono">yarn</code> with{" "} - <code className="mono">bun install</code> and get 20x faster - package installs. - </strong> - <br /> - <div> - <code className="mono">bun install</code> uses the fastest system - calls available to copy files. - </div> - </Group> - <Group> - <Command>bun wiptest</Command> - <p> - A Jest-like test runner for JavaScript & TypeScript projects - built-in to Bun. - </p> - <Label> - <PerformanceClaim href="https://twitter.com/jarredsumner/status/1542824445810642946"> - You've never seen a JavaScript test runner this fast - </PerformanceClaim>{" "} - (or incomplete). - </Label> - </Group> - - <h2>What is the license?</h2> - <p> - MIT License, excluding dependencies which have various licenses. - </p> - <h2>How do I see the source code?</h2> - <p> - Bun is on <a href="https://github.com/oven-sh/bun">GitHub</a>. - </p> - </div> - </section> - - <section id="explain-section"> - <div id="explain"></div> - </section> - <script - dangerouslySetInnerHTML={{ - __html: ` -[...document.querySelectorAll(".Tab")].map(el => { - el.addEventListener("click", function(e) { - var tab = e.srcElement.getAttribute("data-tab"); - [...document.querySelectorAll(".Tab")].map(el => { - var active = el.getAttribute("data-tab") === tab; - el.setAttribute("tabindex", active ? 0 : -1); - el.setAttribute("aria-selected", active); - }); - [...document.querySelectorAll(".BarGraph")].map(el => { - var active = el.id === tab + "-tab-content"; - el.setAttribute("tabindex", active ? 0 : -1); - }); - document.querySelector(".Graphs").setAttribute("class", "Graphs Graphs--active-" + tab); - }); - - el.addEventListener("keydown", e => { - var tabs = [...document.querySelectorAll(".Tab")]; - var activeTabEl = document.querySelector(".Tab[aria-selected='true']"); - var activeTabIndex = tabs.indexOf(activeTabEl); - if (e.key === 'ArrowRight' || e.key === 'ArrowDown') { - e.preventDefault(); - activeTabIndex = (activeTabIndex + 1) % tabs.length; - tabs[activeTabIndex].click(); - tabs[activeTabIndex].focus(); - } - if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') { - e.preventDefault(); - activeTabIndex = (activeTabIndex + tabs.length - 1) % tabs.length; - tabs[activeTabIndex].click(); - tabs[activeTabIndex].focus(); - } - if (e.key === 'Home') { - e.preventDefault(); - tabs[0].click(); - tabs[0].focus(); - } - if (e.key === 'End') { - e.preventDefault(); - tabs[tabs.length - 1].click(); - tabs[tabs.length - 1].focus(); - } - }); -}); - -for (const el of document.querySelectorAll(".InstallBox-copy")) { - el.addEventListener("click", async e => { - await navigator.clipboard.writeText("curl -fsSL https://bun.sh/install | bash"); - }); -} - `, - }} - /> - <div className="Built">Built with Bun {process.versions.bun}</div> - </> - ); -} - -export const config = { - unstable_runtimeJS: false, -}; diff --git a/packages/bun-landing/public/Bun.png b/packages/bun-landing/public/Bun.png Binary files differdeleted file mode 100644 index 759b156a3..000000000 --- a/packages/bun-landing/public/Bun.png +++ /dev/null diff --git a/packages/bun-landing/public/Bun@2x.png b/packages/bun-landing/public/Bun@2x.png Binary files differdeleted file mode 100644 index 34072c3c6..000000000 --- a/packages/bun-landing/public/Bun@2x.png +++ /dev/null diff --git a/packages/bun-landing/public/favicon.ico b/packages/bun-landing/public/favicon.ico Binary files differdeleted file mode 100644 index 5b9f93874..000000000 --- a/packages/bun-landing/public/favicon.ico +++ /dev/null diff --git a/packages/bun-landing/public/logo-square.png b/packages/bun-landing/public/logo-square.png Binary files differdeleted file mode 100644 index fedd94ab9..000000000 --- a/packages/bun-landing/public/logo-square.png +++ /dev/null diff --git a/packages/bun-landing/public/logo-square@16px.png b/packages/bun-landing/public/logo-square@16px.png Binary files differdeleted file mode 100644 index 90dede13a..000000000 --- a/packages/bun-landing/public/logo-square@16px.png +++ /dev/null diff --git a/packages/bun-landing/public/logo-square@32px.png b/packages/bun-landing/public/logo-square@32px.png Binary files differdeleted file mode 100644 index 33bfb9f23..000000000 --- a/packages/bun-landing/public/logo-square@32px.png +++ /dev/null diff --git a/packages/bun-landing/public/logo.png b/packages/bun-landing/public/logo.png Binary files differdeleted file mode 100644 index ea9eb97dc..000000000 --- a/packages/bun-landing/public/logo.png +++ /dev/null diff --git a/packages/bun-landing/public/logo.svg b/packages/bun-landing/public/logo.svg deleted file mode 100644 index 7ef15001d..000000000 --- a/packages/bun-landing/public/logo.svg +++ /dev/null @@ -1 +0,0 @@ -<svg id="Bun" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 70"><title>Bun Logo</title><path id="Shadow" d="M71.09,20.74c-.16-.17-.33-.34-.5-.5s-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5A26.46,26.46,0,0,1,75.5,35.7c0,16.57-16.82,30.05-37.5,30.05-11.58,0-21.94-4.23-28.83-10.86l.5.5.5.5.5.5.5.5.5.5.5.5.5.5C19.55,65.3,30.14,69.75,42,69.75c20.68,0,37.5-13.48,37.5-30C79.5,32.69,76.46,26,71.09,20.74Z"/><g id="Body"><path id="Background" d="M73,35.7c0,15.21-15.67,27.54-35,27.54S3,50.91,3,35.7C3,26.27,9,17.94,18.22,13S33.18,3,38,3s8.94,4.13,19.78,10C67,17.94,73,26.27,73,35.7Z" style="fill:#fbf0df"/><path id="Bottom_Shadow" data-name="Bottom Shadow" d="M73,35.7a21.67,21.67,0,0,0-.8-5.78c-2.73,33.3-43.35,34.9-59.32,24.94A40,40,0,0,0,38,63.24C57.3,63.24,73,50.89,73,35.7Z" style="fill:#f6dece"/><path id="Light_Shine" data-name="Light Shine" d="M24.53,11.17C29,8.49,34.94,3.46,40.78,3.45A9.29,9.29,0,0,0,38,3c-2.42,0-5,1.25-8.25,3.13-1.13.66-2.3,1.39-3.54,2.15-2.33,1.44-5,3.07-8,4.7C8.69,18.13,3,26.62,3,35.7c0,.4,0,.8,0,1.19C9.06,15.48,20.07,13.85,24.53,11.17Z" style="fill:#fffefc"/><path id="Top" d="M35.12,5.53A16.41,16.41,0,0,1,29.49,18c-.28.25-.06.73.3.59,3.37-1.31,7.92-5.23,6-13.14C35.71,5,35.12,5.12,35.12,5.53Zm2.27,0A16.24,16.24,0,0,1,39,19c-.12.35.31.65.55.36C41.74,16.56,43.65,11,37.93,5,37.64,4.74,37.19,5.14,37.39,5.49Zm2.76-.17A16.42,16.42,0,0,1,47,17.12a.33.33,0,0,0,.65.11c.92-3.49.4-9.44-7.17-12.53C40.08,4.54,39.82,5.08,40.15,5.32ZM21.69,15.76a16.94,16.94,0,0,0,10.47-9c.18-.36.75-.22.66.18-1.73,8-7.52,9.67-11.12,9.45C21.32,16.4,21.33,15.87,21.69,15.76Z" style="fill:#ccbea7;fill-rule:evenodd"/><path id="Outline" d="M38,65.75C17.32,65.75.5,52.27.5,35.7c0-10,6.18-19.33,16.53-24.92,3-1.6,5.57-3.21,7.86-4.62,1.26-.78,2.45-1.51,3.6-2.19C32,1.89,35,.5,38,.5s5.62,1.2,8.9,3.14c1,.57,2,1.19,3.07,1.87,2.49,1.54,5.3,3.28,9,5.27C69.32,16.37,75.5,25.69,75.5,35.7,75.5,52.27,58.68,65.75,38,65.75ZM38,3c-2.42,0-5,1.25-8.25,3.13-1.13.66-2.3,1.39-3.54,2.15-2.33,1.44-5,3.07-8,4.7C8.69,18.13,3,26.62,3,35.7,3,50.89,18.7,63.25,38,63.25S73,50.89,73,35.7C73,26.62,67.31,18.13,57.78,13,54,11,51.05,9.12,48.66,7.64c-1.09-.67-2.09-1.29-3-1.84C42.63,4,40.42,3,38,3Z"/></g><g id="Mouth"><g id="Background-2" data-name="Background"><path d="M45.05,43a8.93,8.93,0,0,1-2.92,4.71,6.81,6.81,0,0,1-4,1.88A6.84,6.84,0,0,1,34,47.71,8.93,8.93,0,0,1,31.12,43a.72.72,0,0,1,.8-.81H44.26A.72.72,0,0,1,45.05,43Z" style="fill:#b71422"/></g><g id="Tongue"><path id="Background-3" data-name="Background" d="M34,47.79a6.91,6.91,0,0,0,4.12,1.9,6.91,6.91,0,0,0,4.11-1.9,10.63,10.63,0,0,0,1-1.07,6.83,6.83,0,0,0-4.9-2.31,6.15,6.15,0,0,0-5,2.78C33.56,47.4,33.76,47.6,34,47.79Z" style="fill:#ff6164"/><path id="Outline-2" data-name="Outline" d="M34.16,47a5.36,5.36,0,0,1,4.19-2.08,6,6,0,0,1,4,1.69c.23-.25.45-.51.66-.77a7,7,0,0,0-4.71-1.93,6.36,6.36,0,0,0-4.89,2.36A9.53,9.53,0,0,0,34.16,47Z"/></g><path id="Outline-3" data-name="Outline" d="M38.09,50.19a7.42,7.42,0,0,1-4.45-2,9.52,9.52,0,0,1-3.11-5.05,1.2,1.2,0,0,1,.26-1,1.41,1.41,0,0,1,1.13-.51H44.26a1.44,1.44,0,0,1,1.13.51,1.19,1.19,0,0,1,.25,1h0a9.52,9.52,0,0,1-3.11,5.05A7.42,7.42,0,0,1,38.09,50.19Zm-6.17-7.4c-.16,0-.2.07-.21.09a8.29,8.29,0,0,0,2.73,4.37A6.23,6.23,0,0,0,38.09,49a6.28,6.28,0,0,0,3.65-1.73,8.3,8.3,0,0,0,2.72-4.37.21.21,0,0,0-.2-.09Z"/></g><g id="Face"><ellipse id="Right_Blush" data-name="Right Blush" cx="53.22" cy="40.18" rx="5.85" ry="3.44" style="fill:#febbd0"/><ellipse id="Left_Bluch" data-name="Left Bluch" cx="22.95" cy="40.18" rx="5.85" ry="3.44" style="fill:#febbd0"/><path id="Eyes" d="M25.7,38.8a5.51,5.51,0,1,0-5.5-5.51A5.51,5.51,0,0,0,25.7,38.8Zm24.77,0A5.51,5.51,0,1,0,45,33.29,5.5,5.5,0,0,0,50.47,38.8Z" style="fill-rule:evenodd"/><path id="Iris" d="M24,33.64a2.07,2.07,0,1,0-2.06-2.07A2.07,2.07,0,0,0,24,33.64Zm24.77,0a2.07,2.07,0,1,0-2.06-2.07A2.07,2.07,0,0,0,48.75,33.64Z" style="fill:#fff;fill-rule:evenodd"/></g></svg>
\ No newline at end of file diff --git a/packages/bun-landing/public/logo@2x.png b/packages/bun-landing/public/logo@2x.png Binary files differdeleted file mode 100644 index d232243e5..000000000 --- a/packages/bun-landing/public/logo@2x.png +++ /dev/null diff --git a/packages/bun-landing/public/manifest.json b/packages/bun-landing/public/manifest.json deleted file mode 100644 index 9d78a2d26..000000000 --- a/packages/bun-landing/public/manifest.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "Bun", - "icons": [ - { - "src": "/logo-square.png", - "sizes": "256x256", - "type": "image/png" - } - ], - "theme_color": "#fbf0df", - "background_color": "#fbf0df", - "start_url": "/", - "display": "minimal-ui" -} diff --git a/packages/bun-landing/public/next.svg b/packages/bun-landing/public/next.svg deleted file mode 100644 index c7ce692a7..000000000 --- a/packages/bun-landing/public/next.svg +++ /dev/null @@ -1,12 +0,0 @@ -<svg width="81" height="48" viewBox="0 0 81 48" fill="none" xmlns="http://www.w3.org/2000/svg"> -<g clip-path="url(#clip0_450_101)"> -<path d="M19.0273 12.6317H34.0839V13.8246H20.4075V22.8027H33.2684V23.9956H20.4075V33.8527H34.2408V35.0456H19.0273V12.6317ZM35.4328 12.6317H37.0325L44.1217 22.4888L51.3677 12.6317L61.2234 0.111023L45.0314 23.5247L53.3752 35.0456H51.7127L44.1217 24.5607L36.4993 35.0456H34.8681L43.2747 23.5247L35.4328 12.6317ZM53.9712 13.8246V12.6317H71.1295V13.8246H63.2247V35.0456H61.8446V13.8246H53.9712Z" fill="#4B5563"/> -<path d="M0.19043 12.6317H1.91567L25.7057 48.1173L15.8744 35.0455L1.63335 14.3269L1.57062 35.0455H0.19043V12.6317Z" fill="#4B5563"/> -<path d="M70.9896 33.4927C71.2749 33.4927 71.483 33.2749 71.483 32.9934C71.483 32.712 71.2749 32.4942 70.9896 32.4942C70.7076 32.4942 70.4961 32.712 70.4961 32.9934C70.4961 33.2749 70.7076 33.4927 70.9896 33.4927ZM72.3458 32.1792C72.3458 33.0102 72.9467 33.553 73.8228 33.553C74.756 33.553 75.32 32.9934 75.32 32.0218V28.6009H74.5681V32.0184C74.5681 32.5579 74.2961 32.846 73.8161 32.846C73.3864 32.846 73.0944 32.578 73.0843 32.1792H72.3458ZM76.3036 32.1357C76.3573 33.0001 77.079 33.553 78.1533 33.553C79.3013 33.553 80.0197 32.9733 80.0197 32.0486C80.0197 31.3215 79.6102 30.9194 78.6165 30.6882L78.0828 30.5576C77.4517 30.4102 77.1965 30.2125 77.1965 29.8674C77.1965 29.4318 77.5926 29.147 78.1868 29.147C78.7508 29.147 79.1402 29.4251 79.2107 29.8707H79.9425C79.8989 29.0565 79.1805 28.4836 78.1969 28.4836C77.1395 28.4836 76.4345 29.0565 76.4345 29.9176C76.4345 30.6279 76.834 31.0501 77.7101 31.2545L78.3345 31.4053C78.9757 31.556 79.2577 31.7772 79.2577 32.1457C79.2577 32.5746 78.8146 32.8862 78.2103 32.8862C77.5624 32.8862 77.1126 32.5947 77.0488 32.1357H76.3036Z" fill="#4B5563"/> -</g> -<defs> -<clipPath id="clip0_450_101"> -<rect width="80" height="48" fill="white" transform="translate(0.112305)"/> -</clipPath> -</defs> -</svg> diff --git a/packages/bun-landing/public/remix.svg b/packages/bun-landing/public/remix.svg deleted file mode 100644 index 86dd2f1e1..000000000 --- a/packages/bun-landing/public/remix.svg +++ /dev/null @@ -1,4 +0,0 @@ -<svg width="28" height="32" viewBox="0 0 28 32" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path d="M26.1614 24.5649C25.9906 22.7985 25.4478 21.5069 24.5868 20.5805L24.5868 20.5805C23.8406 19.7774 22.8311 19.2222 21.5486 18.8828L21.5744 17.91C24.931 17.2093 27.3665 14.4499 27.3665 10.2733C27.3665 7.28162 26.3804 4.89134 24.436 3.24179C22.4825 1.58457 19.5125 0.633057 15.4674 0.633057H0.633789V6.31314H13.9593C15.8136 6.31314 17.2629 6.70825 18.2561 7.48269L18.2561 7.48271C19.2633 8.26814 19.7546 9.40713 19.7546 10.7783C19.7546 12.313 19.2701 13.4421 18.2416 14.1659C17.2423 14.8692 15.7906 15.1434 13.9593 15.1434H0.633789V20.9642H11.0186H13.5571C15.0067 20.9642 16.226 21.1624 17.1094 21.8999M26.1614 24.5649L17.1094 21.8999M26.1614 24.5649C26.4258 27.9461 26.4431 29.6469 26.4443 31.3669H18.7292C18.7318 31.1029 18.7367 30.8486 18.7418 30.5899L18.7419 30.5899V30.5833C18.7649 29.4127 18.7883 28.1848 18.5988 25.7252V25.7128L18.5966 25.6948M26.1614 24.5649L18.5966 25.6948M17.1094 21.8999C17.9993 22.6428 18.4667 23.8616 18.5966 25.6948M17.1094 21.8999L18.5966 25.6948" stroke="#4B5563"/> -<path d="M10.6519 31.3669H0.633789V27.2145H9.20185C9.84554 27.2145 10.1855 27.4454 10.3765 27.7007C10.5814 27.9746 10.6519 28.3277 10.6519 28.6067V31.3669Z" stroke="#4B5563"/> -</svg> diff --git a/packages/bun-landing/public/share.png b/packages/bun-landing/public/share.png Binary files differdeleted file mode 100644 index 091ec1fec..000000000 --- a/packages/bun-landing/public/share.png +++ /dev/null diff --git a/packages/bun-landing/styles/global.css b/packages/bun-landing/styles/global.css deleted file mode 100644 index fecf91fa6..000000000 --- a/packages/bun-landing/styles/global.css +++ /dev/null @@ -1,915 +0,0 @@ -:root { - --black: #0b0a08; - --blue: #00a6e1; - --orange: #f89b4b; - --orange-light: #d4d3d2; - - --monospace-font: "Fira Code", "Hack", "Source Code Pro", "SF Mono", - "Inconsolata", monospace; - - --dark-border: rgba(200, 200, 25, 0.2); - --max-width: 1152px; - - --system-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", - Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; - - --horizontal-padding: 3rem; - --vertical-padding: 4rem; - --line-height: 1.4; -} - -* { - box-sizing: border-box; -} - -head, -body, -:root { - margin: 0 auto; - padding: 0; - font-family: var(--system-font); -} - -body { - background-color: #fbf0df; -} - -a { - color: inherit; - text-decoration: none; - transition: transform 0.1s linear; -} - -a:visited { - color: inherit; -} - -a:hover { - text-decoration: underline; - transform: scale(1.06, 1.06); - transform-origin: middle center; -} - -#header-wrap, -#pitch { - background-color: var(--black); - color: #fbf0df; - width: 100%; -} - -#logo-link { - width: fit-content; - display: flex; - gap: 24px; - align-items: center; -} - -main { - width: auto; - - margin: 0 auto; - max-width: var(--max-width); - display: grid; - grid-template-columns: auto auto; - overflow-y: hidden; -} - -main, -header, -#explain-section { - margin: 0 auto; - max-width: var(--max-width); - padding: 0 var(--horizontal-padding); -} - -#cards-wrap, -#usecases, -main, -header { - padding: var(--vertical-padding) var(--horizontal-padding); -} - -#pitch-content { - max-width: 600px; -} - -.tagline { - margin-top: 0; - line-height: 1; - font-size: 36pt; -} - -.subtitle { - font-size: 1.2rem; -} - -.Navigation ul { - white-space: nowrap; - display: flex; - gap: 2rem; - list-style: none; -} - -.NavText { - color: #fbf0df; - display: block; - font-weight: 500; - font-size: 1.2rem; -} - -#HeaderInstallButton { - margin-left: 2.4rem; -} - -#pitch main { - gap: 2rem; -} - -#logo { - max-width: 70px; - margin: auto 0; -} - -#logo-text { - max-width: 96px; -} - -header { - display: grid; - grid-template-columns: auto max-content; - background-color: var(--black); - padding: 1.5rem 3rem; - align-items: center; - color: white; -} - -#HeaderInstallButton:hover { - cursor: pointer; - transform: scale(1.06); -} - -#HeaderInstallButton { - transition: transform 0.1s linear; - background: #00a6e1; - padding: 8px 16px; - border-radius: 100px; - color: black; - font-weight: 500; -} - -.InstallBox { - margin-top: 2rem; - background: #15140e; - padding: 24px 24px; - border-radius: 24px; - user-select: none; - -webkit-user-select: none; - -webkit-user-drag: none; - -moz-user-select: none; -} - -.InstallBox-label-heading { - font-size: 1.4rem; - margin-bottom: 1rem; - font-weight: 500; - font-weight: 500; -} - -.InstallBox-label-subtitle { - font-size: 0.9rem; - color: var(--orange-light); -} - -#usecases-section { - background: linear-gradient(12deg, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.2)), - conic-gradient( - from 6.27deg at 46.95% 50.05%, - #ff8181 0deg, - #e5f067 75deg, - #6dd9ba 155.62deg, - #67f0ae 168.75deg, - #8b67f0 243.75deg, - #f067e2 300deg, - #e967e3 334.49deg, - #f06767 348.9deg, - #ff8181 360deg - ); - color: white; - font-family: var(--monospace-font); - contain: paint; - - font-size: 24pt; - font-weight: bold; -} - -#usecases-section { - padding: 0; - margin: 0; -} - -#usecases { - padding-top: 1rem; - padding-bottom: 1rem; -} - -#usecases-section h1 { - background: linear-gradient(90deg, #ff0000 0%, #faff00 50.52%, #0500ff 100%); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); - font-family: Helvetica; - margin: 0; - padding: 0; -} - -.InstallBox-code-box { - background-color: rgb(37, 36, 32); - padding: 4px 16px; - position: relative; - border-radius: 8px; - text-align: center; - align-items: center; - border: 1px solid var(--orange); - margin-top: 1rem; - display: flex; - justify-content: space-between; - align-content: center; - white-space: nowrap; - margin-bottom: 1rem; - font-family: var(--monospace-font); -} - -.InstallBox-curl { - user-select: all; - -webkit-user-select: text; - pointer-events: auto; - white-space: nowrap; - cursor: text; - display: inline-flex; - padding: 12px 8px; - gap: 2ch; -} - -.InstallBox-curl::before { - display: block; - content: "$" / ""; - color: var(--orange); - pointer-events: none; - width: 1ch; - height: 1ch; -} - -.InstallBox-view-source-link { - color: var(--orange-light); -} - -.InstallBox-copy { - height: 100%; - display: flex; - align-items: center; - color: var(--orange-light); - transition: transform 0.05s linear; - transition-property: color, transform; - transform-origin: center center; - cursor: pointer; - background: transparent; - border: none; - font-size: inherit; - font-family: inherit; -} - -.InstallBox-copy:hover { - color: var(--blue); - transform: scale(1.06); -} - -.InstallBox-copy:active { - transform: scale(1.12); -} - -.Tabs { - display: grid; - grid-template-columns: repeat(3, 1fr); - margin-left: auto; - margin-right: auto; - justify-content: center; - align-items: center; - width: min-content; - white-space: nowrap; - padding: 0; -} - -.Tab { - width: min-content; - border: none; - background-color: transparent; - font-family: var(--monospace-font); - text-align: center; - border-bottom: 1px solid #ccc; - cursor: pointer; - padding: 16px; - color: inherit; - font-size: inherit; -} - -.Tab:hover, -.Graphs--active-react .Tab[data-tab="react"], -.Graphs--active-sqlite .Tab[data-tab="sqlite"], -.Graphs--active-websocket .Tab[data-tab="websocket"] { - border-bottom-color: aquamarine; - background-color: rgba(130, 216, 247, 0.1); - border-right-color: aquamarine; - border-left-color: aquamarine; -} - -.BarGraph { - padding: 24px; - display: flex; - flex-direction: column; -} - -.BarGraph-heading { - font-weight: 500; - font-size: 1.5rem; - margin: 0; -} - -.BarGraphList { - flex: 1; - position: relative; - list-style-type: none; - padding: 0; -} - -.BarGraph, -.ActiveTab, -.Graphs { - height: auto; -} - -.BarGraph-subheading { - font-size: 0.9rem; - color: rgb(135, 134, 134); - margin: 0; -} - -.BarGraphList { - margin-top: 1rem; - display: grid; - grid-template-columns: repeat(var(--count), 1fr); - font-variant-numeric: tabular-nums; - font-family: var(--monospace-font); - justify-content: center; - align-items: flex-start; - height: 100%; - background-color: #080808; -} - -.BarGraphKey { - display: grid; - text-align: center; - margin-top: 1rem; - grid-template-columns: repeat(var(--count), 1fr); -} - -.BarGraphBar { - --primary: 70px; - --opposite: 100%; -} - -.BarGraph, -.BarGraphBar-label, -.BarGraphItem { - --level: calc(var(--amount) / var(--max)); - --inverse: calc(1 / var(--level)); -} - -.BarGraphBar { - margin: 0 auto; - width: var(--primary); - height: var(--opposite); - background-color: rgb(93, 89, 134); - position: relative; - height: calc(200px * var(--level)); -} - -.BarGraphItem { - border-right: 1px dashed var(--dark-border); - border-top: 1px dashed var(--dark-border); - border-bottom: 1px dashed var(--dark-border); - min-height: 200px; - display: flex; - flex-direction: column; - justify-content: flex-end; -} - -.BarGraphItem--deno { - border-right-color: transparent; -} - -.BarGraph--vertical .BarGraphBar { - max-width: 90%; -} - -.BarGraphBar-label { - color: white; - font-variant-numeric: tabular-nums; - font-family: var(--monospace-font); - width: 100%; - text-align: center; - position: relative; - display: flex; - justify-content: center; -} - -.CardContent { - position: relative; -} - -.BarGraph--vertical .BarGraphBar-label { - transform: scaleX(var(--inverse)); - bottom: 0; - right: 0; -} - -.BarGraph--horizontal .BarGraphBar-label { - top: -22px; -} - -.BarGraphItem--bun .BarGraphBar { - background-color: rgb(249, 241, 225); - box-shadow: inset 1px 1px 3px rgb(204, 198, 187); - background-image: url(data:image/svg+xml;base64,PHN2ZyBpZD0iQnVuIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4MCA3MCI+PHRpdGxlPkJ1biBMb2dvPC90aXRsZT48cGF0aCBpZD0iU2hhZG93IiBkPSJNNzEuMDksMjAuNzRjLS4xNi0uMTctLjMzLS4zNC0uNS0uNXMtLjMzLS4zNC0uNS0uNS0uMzMtLjM0LS41LS41LS4zMy0uMzQtLjUtLjUtLjMzLS4zNC0uNS0uNS0uMzMtLjM0LS41LS41LS4zMy0uMzQtLjUtLjVBMjYuNDYsMjYuNDYsMCwwLDEsNzUuNSwzNS43YzAsMTYuNTctMTYuODIsMzAuMDUtMzcuNSwzMC4wNS0xMS41OCwwLTIxLjk0LTQuMjMtMjguODMtMTAuODZsLjUuNS41LjUuNS41LjUuNS41LjUuNS41LjUuNUMxOS41NSw2NS4zLDMwLjE0LDY5Ljc1LDQyLDY5Ljc1YzIwLjY4LDAsMzcuNS0xMy40OCwzNy41LTMwQzc5LjUsMzIuNjksNzYuNDYsMjYsNzEuMDksMjAuNzRaIi8+PGcgaWQ9IkJvZHkiPjxwYXRoIGlkPSJCYWNrZ3JvdW5kIiBkPSJNNzMsMzUuN2MwLDE1LjIxLTE1LjY3LDI3LjU0LTM1LDI3LjU0UzMsNTAuOTEsMywzNS43QzMsMjYuMjcsOSwxNy45NCwxOC4yMiwxM1MzMy4xOCwzLDM4LDNzOC45NCw0LjEzLDE5Ljc4LDEwQzY3LDE3Ljk0LDczLDI2LjI3LDczLDM1LjdaIiBzdHlsZT0iZmlsbDojZmJmMGRmIi8+PHBhdGggaWQ9IkJvdHRvbV9TaGFkb3ciIGRhdGEtbmFtZT0iQm90dG9tIFNoYWRvdyIgZD0iTTczLDM1LjdhMjEuNjcsMjEuNjcsMCwwLDAtLjgtNS43OGMtMi43MywzMy4zLTQzLjM1LDM0LjktNTkuMzIsMjQuOTRBNDAsNDAsMCwwLDAsMzgsNjMuMjRDNTcuMyw2My4yNCw3Myw1MC44OSw3MywzNS43WiIgc3R5bGU9ImZpbGw6I2Y2ZGVjZSIvPjxwYXRoIGlkPSJMaWdodF9TaGluZSIgZGF0YS1uYW1lPSJMaWdodCBTaGluZSIgZD0iTTI0LjUzLDExLjE3QzI5LDguNDksMzQuOTQsMy40Niw0MC43OCwzLjQ1QTkuMjksOS4yOSwwLDAsMCwzOCwzYy0yLjQyLDAtNSwxLjI1LTguMjUsMy4xMy0xLjEzLjY2LTIuMywxLjM5LTMuNTQsMi4xNS0yLjMzLDEuNDQtNSwzLjA3LTgsNC43QzguNjksMTguMTMsMywyNi42MiwzLDM1LjdjMCwuNCwwLC44LDAsMS4xOUM5LjA2LDE1LjQ4LDIwLjA3LDEzLjg1LDI0LjUzLDExLjE3WiIgc3R5bGU9ImZpbGw6I2ZmZmVmYyIvPjxwYXRoIGlkPSJUb3AiIGQ9Ik0zNS4xMiw1LjUzQTE2LjQxLDE2LjQxLDAsMCwxLDI5LjQ5LDE4Yy0uMjguMjUtLjA2LjczLjMuNTksMy4zNy0xLjMxLDcuOTItNS4yMyw2LTEzLjE0QzM1LjcxLDUsMzUuMTIsNS4xMiwzNS4xMiw1LjUzWm0yLjI3LDBBMTYuMjQsMTYuMjQsMCwwLDEsMzksMTljLS4xMi4zNS4zMS42NS41NS4zNkM0MS43NCwxNi41Niw0My42NSwxMSwzNy45Myw1LDM3LjY0LDQuNzQsMzcuMTksNS4xNCwzNy4zOSw1LjQ5Wm0yLjc2LS4xN0ExNi40MiwxNi40MiwwLDAsMSw0NywxNy4xMmEuMzMuMzMsMCwwLDAsLjY1LjExYy45Mi0zLjQ5LjQtOS40NC03LjE3LTEyLjUzQzQwLjA4LDQuNTQsMzkuODIsNS4wOCw0MC4xNSw1LjMyWk0yMS42OSwxNS43NmExNi45NCwxNi45NCwwLDAsMCwxMC40Ny05Yy4xOC0uMzYuNzUtLjIyLjY2LjE4LTEuNzMsOC03LjUyLDkuNjctMTEuMTIsOS40NUMyMS4zMiwxNi40LDIxLjMzLDE1Ljg3LDIxLjY5LDE1Ljc2WiIgc3R5bGU9ImZpbGw6I2NjYmVhNztmaWxsLXJ1bGU6ZXZlbm9kZCIvPjxwYXRoIGlkPSJPdXRsaW5lIiBkPSJNMzgsNjUuNzVDMTcuMzIsNjUuNzUuNSw1Mi4yNy41LDM1LjdjMC0xMCw2LjE4LTE5LjMzLDE2LjUzLTI0LjkyLDMtMS42LDUuNTctMy4yMSw3Ljg2LTQuNjIsMS4yNi0uNzgsMi40NS0xLjUxLDMuNi0yLjE5QzMyLDEuODksMzUsLjUsMzgsLjVzNS42MiwxLjIsOC45LDMuMTRjMSwuNTcsMiwxLjE5LDMuMDcsMS44NywyLjQ5LDEuNTQsNS4zLDMuMjgsOSw1LjI3QzY5LjMyLDE2LjM3LDc1LjUsMjUuNjksNzUuNSwzNS43LDc1LjUsNTIuMjcsNTguNjgsNjUuNzUsMzgsNjUuNzVaTTM4LDNjLTIuNDIsMC01LDEuMjUtOC4yNSwzLjEzLTEuMTMuNjYtMi4zLDEuMzktMy41NCwyLjE1LTIuMzMsMS40NC01LDMuMDctOCw0LjdDOC42OSwxOC4xMywzLDI2LjYyLDMsMzUuNywzLDUwLjg5LDE4LjcsNjMuMjUsMzgsNjMuMjVTNzMsNTAuODksNzMsMzUuN0M3MywyNi42Miw2Ny4zMSwxOC4xMyw1Ny43OCwxMyw1NCwxMSw1MS4wNSw5LjEyLDQ4LjY2LDcuNjRjLTEuMDktLjY3LTIuMDktMS4yOS0zLTEuODRDNDIuNjMsNCw0MC40MiwzLDM4LDNaIi8+PC9nPjxnIGlkPSJNb3V0aCI+PGcgaWQ9IkJhY2tncm91bmQtMiIgZGF0YS1uYW1lPSJCYWNrZ3JvdW5kIj48cGF0aCBkPSJNNDUuMDUsNDNhOC45Myw4LjkzLDAsMCwxLTIuOTIsNC43MSw2LjgxLDYuODEsMCwwLDEtNCwxLjg4QTYuODQsNi44NCwwLDAsMSwzNCw0Ny43MSw4LjkzLDguOTMsMCwwLDEsMzEuMTIsNDNhLjcyLjcyLDAsMCwxLC44LS44MUg0NC4yNkEuNzIuNzIsMCwwLDEsNDUuMDUsNDNaIiBzdHlsZT0iZmlsbDojYjcxNDIyIi8+PC9nPjxnIGlkPSJUb25ndWUiPjxwYXRoIGlkPSJCYWNrZ3JvdW5kLTMiIGRhdGEtbmFtZT0iQmFja2dyb3VuZCIgZD0iTTM0LDQ3Ljc5YTYuOTEsNi45MSwwLDAsMCw0LjEyLDEuOSw2LjkxLDYuOTEsMCwwLDAsNC4xMS0xLjksMTAuNjMsMTAuNjMsMCwwLDAsMS0xLjA3LDYuODMsNi44MywwLDAsMC00LjktMi4zMSw2LjE1LDYuMTUsMCwwLDAtNSwyLjc4QzMzLjU2LDQ3LjQsMzMuNzYsNDcuNiwzNCw0Ny43OVoiIHN0eWxlPSJmaWxsOiNmZjYxNjQiLz48cGF0aCBpZD0iT3V0bGluZS0yIiBkYXRhLW5hbWU9Ik91dGxpbmUiIGQ9Ik0zNC4xNiw0N2E1LjM2LDUuMzYsMCwwLDEsNC4xOS0yLjA4LDYsNiwwLDAsMSw0LDEuNjljLjIzLS4yNS40NS0uNTEuNjYtLjc3YTcsNywwLDAsMC00LjcxLTEuOTMsNi4zNiw2LjM2LDAsMCwwLTQuODksMi4zNkE5LjUzLDkuNTMsMCwwLDAsMzQuMTYsNDdaIi8+PC9nPjxwYXRoIGlkPSJPdXRsaW5lLTMiIGRhdGEtbmFtZT0iT3V0bGluZSIgZD0iTTM4LjA5LDUwLjE5YTcuNDIsNy40MiwwLDAsMS00LjQ1LTIsOS41Miw5LjUyLDAsMCwxLTMuMTEtNS4wNSwxLjIsMS4yLDAsMCwxLC4yNi0xLDEuNDEsMS40MSwwLDAsMSwxLjEzLS41MUg0NC4yNmExLjQ0LDEuNDQsMCwwLDEsMS4xMy41MSwxLjE5LDEuMTksMCwwLDEsLjI1LDFoMGE5LjUyLDkuNTIsMCwwLDEtMy4xMSw1LjA1QTcuNDIsNy40MiwwLDAsMSwzOC4wOSw1MC4xOVptLTYuMTctNy40Yy0uMTYsMC0uMi4wNy0uMjEuMDlhOC4yOSw4LjI5LDAsMCwwLDIuNzMsNC4zN0E2LjIzLDYuMjMsMCwwLDAsMzguMDksNDlhNi4yOCw2LjI4LDAsMCwwLDMuNjUtMS43Myw4LjMsOC4zLDAsMCwwLDIuNzItNC4zNy4yMS4yMSwwLDAsMC0uMi0uMDlaIi8+PC9nPjxnIGlkPSJGYWNlIj48ZWxsaXBzZSBpZD0iUmlnaHRfQmx1c2giIGRhdGEtbmFtZT0iUmlnaHQgQmx1c2giIGN4PSI1My4yMiIgY3k9IjQwLjE4IiByeD0iNS44NSIgcnk9IjMuNDQiIHN0eWxlPSJmaWxsOiNmZWJiZDAiLz48ZWxsaXBzZSBpZD0iTGVmdF9CbHVjaCIgZGF0YS1uYW1lPSJMZWZ0IEJsdWNoIiBjeD0iMjIuOTUiIGN5PSI0MC4xOCIgcng9IjUuODUiIHJ5PSIzLjQ0IiBzdHlsZT0iZmlsbDojZmViYmQwIi8+PHBhdGggaWQ9IkV5ZXMiIGQ9Ik0yNS43LDM4LjhhNS41MSw1LjUxLDAsMSwwLTUuNS01LjUxQTUuNTEsNS41MSwwLDAsMCwyNS43LDM4LjhabTI0Ljc3LDBBNS41MSw1LjUxLDAsMSwwLDQ1LDMzLjI5LDUuNSw1LjUsMCwwLDAsNTAuNDcsMzguOFoiIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZCIvPjxwYXRoIGlkPSJJcmlzIiBkPSJNMjQsMzMuNjRhMi4wNywyLjA3LDAsMSwwLTIuMDYtMi4wN0EyLjA3LDIuMDcsMCwwLDAsMjQsMzMuNjRabTI0Ljc3LDBhMi4wNywyLjA3LDAsMSwwLTIuMDYtMi4wN0EyLjA3LDIuMDcsMCwwLDAsNDguNzUsMzMuNjRaIiBzdHlsZT0iZmlsbDojZmZmO2ZpbGwtcnVsZTpldmVub2RkIi8+PC9nPjwvc3ZnPg==); - background-repeat: no-repeat; - background-size: 56px 48.8px; - background-position: 6px 20%; -} - -.BarGraph--vertical .BarGraphItem--bun { - border-top-right-radius: 12px; - border-bottom-right-radius: 12px; -} - -.BarGraph--horizontal .BarGraphItem--bun { - border-top-left-radius: 12px; - border-top-right-radius: 12px; -} - -.BarGraph--vertical .BarGraphBar { - height: var(--primary); - width: var(--opposite); - transform: scaleX(var(--level)); - transform-origin: bottom left; - max-height: 40px; - margin-top: 1rem; - margin-bottom: 1rem; -} - -.BarGraph--vertical .BarGraphList, -.BarGraph--vertical .BarGraphKey--vertical { - grid-template-columns: 1fr; - grid-template-rows: repeat(var(--count), 1fr); -} - -.BarGraph--vertical .BarGraphList { - direction: rtl; -} - -.BarGraphKeyItem-label { - color: white; -} - -.BarGraphKeyItem-value { - color: #7a7a7a; - margin-top: 0.5rem; -} - -.BarGraphKeyItem-viewSource { - margin-top: 0.5rem; - color: #7a7a7a; - text-transform: lowercase; - font-weight: thin; - font-size: 0.8rem; -} - -.BarGraphKeyItem:hover { - text-decoration: none; -} - -.BarGraphKeyItem:hover .BarGraphKeyItem-viewSource { - color: var(--orange-light); -} - -.DemphasizedLabel { - text-transform: uppercase; - white-space: nowrap; -} - -#frameworks { - display: flex; -} - -.FrameworksGroup { - display: grid; - grid-template-rows: auto 40px; - gap: 0.5rem; -} - -.DemphasizedLabel { - color: #7a7a7a; - font-weight: 300; -} - -.FrameworksList { - display: grid; - grid-template-columns: repeat(2, 40px); - gap: 3.5rem; - align-items: center; -} - -#cards { - display: grid; -} - -#explain ul { - font-size: 1.2rem; -} - -#explain li { - margin-bottom: 1rem; - line-height: var(--line-height); -} - -.Tag { - --background: rgba(31, 31, 132, 0.15); - background-color: var(--background); - border-radius: 8px; - padding: 3px 8px; - color: black; - text-decoration: none !important; - display: inline-block; - font-family: var(--monospace-font) !important; -} - -.mono { - font-family: var(--monospace-font); -} - -.Tag--Command { - --background: #111; - font-weight: medium; - color: rgb(163, 255, 133); -} - -.Tag--Command:before { - content: "❯" / ""; - color: rgba(255, 255, 255, 0.35); - margin-top: auto; - margin-bottom: auto; - margin-right: 1ch; - margin-left: 0.5ch; - display: inline-block; - transform: translateY(-1px); -} - -.Tag--WebAPI { - --background: #29b6f6; - box-shadow: inset -1px -1px 3px rgb(231, 187, 73); -} - -.Tag--NodeJS { - --background: rgb(130, 172, 108); -} - -.Tag--TypeScript { - --background: rgb(69, 119, 192); - color: white; -} - -.Tag--React { - color: rgb(130, 216, 247); - --background: #333; -} - -.Tag--React:before { - color: rgba(130, 216, 247, 0.5); - content: "<" / ""; -} - -.Tag--React:after { - color: rgba(130, 216, 247, 0.5); - content: ">" / ""; -} - -.Tag--Bun { - --background: #e600e5; - color: white; -} - -.mono { - font-family: var(--monospace-font); - border-radius: 6px; - color: rgb(0, 103, 19); -} - -@media (min-width: 931px) { - .InstallBox--mobile { - display: none; - } -} - -#explain { - max-width: 650px; - margin: 0 auto; -} - -@media (max-width: 930px) { - header { - padding: 24px 16px; - } - .InstallBox--desktop { - display: none; - } - - #logo { - width: 48px; - } - - :root { - --max-width: 100%; - --horizontal-padding: 16px; - --vertical-padding: 2rem; - --line-height: 1.6; - } - - main { - grid-template-columns: auto; - grid-template-rows: auto auto auto; - } - - #explain li { - line-height: var(--line-height); - margin-bottom: 1.5rem; - } - - ul { - padding: 0; - list-style: none; - } - - .Tabs { - margin-left: 0; - } - - .Graphs, - .BarGraph, - .BarGraphList { - max-width: auto; - } - - .BarGraph { - padding: 24px 0; - } - - #pitch-content { - max-width: auto; - } - - #pitch main { - gap: 1rem; - } - - .InstallBox { - margin-top: 0; - } - - .tagline { - font-size: 32pt; - } - - #logo-text, - #HeaderInstallButton { - display: none; - } -} - -.InstallBox--mobile { - border-radius: 0; -} - -@media (max-width: 599px) { - .InstallBox-copy { - display: none; - } - - .InstallBox-code-box { - font-size: 0.8rem; - } -} - -@media (max-width: 360px) { - .tagline { - font-size: 22pt; - } -} - -#explain p { - line-height: var(--line-height); - font-size: 1.2rem; -} - -#explain p a { - text-decoration: underline; -} - -.Zig { - transform: translateY(15%); -} - -.CodeBlock .shiki { - padding: 1rem; - border-radius: 8px; - font-family: var(--monospace-font); - font-size: 1rem; -} - -.Identifier { - font-family: var(--monospace-font); - font-size: 1rem; - color: #50fa7b !important; - background-color: #282a36; - padding: 0.25rem; - border-radius: 8px; - text-decoration: none !important; -} - -.PerformanceClaim { - text-decoration: dashed underline 2px #000 !important; - text-decoration-skip-ink: auto !important; -} - -.BarGraph--react, -.BarGraph--websocket, -.BarGraph--sqlite { - display: none; -} - -.Graphs--active-react .BarGraph--react, -.Graphs--active-websocket .BarGraph--websocket, -.Graphs--active-sqlite .BarGraph--sqlite { - display: block; -} - -@media (min-width: 930px) { - .Graphs { - margin-left: auto; - } - - .BarGraph-subheading, - .BarGraph-heading { - text-align: center; - } - .BarGraph-heading { - margin-bottom: 0.25rem; - } - - .BarGraphKeyItem-label { - width: 130px; - } -} - -@media (max-width: 929px) { - .InstallBox-code-box { - width: fit-content; - } - - .CodeBlock .shiki { - padding: 24px 16px; - margin: calc(-1 * var(--horizontal-padding)); - width: calc( - 100vw - var(--horizontal-padding) - var(--horizontal-padding) -2px - ); - white-space: pre-wrap; - box-sizing: border-box; - border-radius: 0; - font-size: 0.8rem; - } - - .logo-link { - gap: 0; - } - - header { - grid-template-columns: min-content auto; - gap: 2rem; - } - - .tagline, - .subtitle, - .BarGraph-heading, - .BarGraph-subheading { - padding: 0 var(--horizontal-padding); - } - - main { - padding-left: 0; - padding-right: 0; - text-align: left; - } - - .InstallBox { - padding: 24px 16px; - margin-bottom: -32px; - } - - .tagline { - font-size: 30pt; - } - - .Tag--Command { - display: block; - width: fit-content; - margin-bottom: 1rem; - } - - .Tabs { - margin: 0; - gap: 0rem; - width: 100%; - border-top: 1px solid rgba(200, 200, 200, 0.1); - } - - .Tab { - width: 100%; - border-bottom-color: #333; - } - - #pitch-content { - max-width: 100%; - } - - .Graphs--active-react .Tab[data-tab="react"], - .Graphs--active-sqlite .Tab[data-tab="sqlite"], - .Graphs--active-websocket .Tab[data-tab="websocket"] { - background-color: rgba(100, 100, 100, 0.1); - } -} - -#explain p > code { - white-space: pre; - padding: 1px 2px; -} - -.Group { - display: block; -} - -.Tag--Command { - display: block; - width: fit-content; - margin-bottom: 0.5rem; - padding: 8px 12px; -} - -.Label-replace { - font-weight: 500; -} - -.Label-text { - margin-top: 0.5rem; - margin-bottom: 1rem; -} - -#batteries { - padding-left: 0; -} - -.Group { - margin-bottom: 2rem; -} - -.Group strong { - display: block; -} - -.Built { - text-align: center; - margin-top: 4rem; - margin-bottom: 2rem; - color: #333; -} - -img { - object-fit: contain; -} - -.visually-hidden { - clip: rect(0 0 0 0); - clip-path: inset(50%); - height: 1px; - overflow: hidden; - position: absolute; - white-space: nowrap; - width: 1px; -} diff --git a/packages/bun-landing/tsconfig.json b/packages/bun-landing/tsconfig.json deleted file mode 100644 index c1e94dd70..000000000 --- a/packages/bun-landing/tsconfig.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "compilerOptions": { - "target": "es5", - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], - "allowJs": true, - "skipLibCheck": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "noEmit": true, - "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "incremental": true - }, - "include": [ - "next-env.d.ts", - "**/*.ts", - "**/*.tsx" - ], - "exclude": [ - "node_modules" - ] -}
\ No newline at end of file |