Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
6faeb01
docs(ui): container screens, slot components, the ui-compile filter
drav0011 Aug 26, 2026
29bcb0d
docs(sync): protocol negotiation, capabilities and incompatible peers
drav0011 Aug 27, 2026
28bf247
docs(ui): chest hook by screen re-declaration, modification and varia…
drav0011 Aug 27, 2026
c135ce1
docs(ui): handlers take one event object
drav0011 Aug 27, 2026
cce2fe1
docs(ui): a button's baked face keeps its caption colour
drav0011 Aug 27, 2026
3b9f35a
docs(ui): what makes a placed control own a form entry
drav0011 Aug 27, 2026
efd51e5
docs(server): shared replaces scoped-state; register() takes a manife…
drav0011 Sep 7, 2026
7adcbb1
docs: apply the bedrock-core theme
drav0011 Sep 8, 2026
a26bfe3
docs: one section per package
drav0011 Sep 8, 2026
68b367b
docs: home page, header and design-system components
drav0011 Sep 8, 2026
c40b794
docs: mark required props with an asterisk
drav0011 Sep 8, 2026
a07bfd7
feat(site): rework the header, footer and mobile navigation
drav0011 Sep 8, 2026
9b0d930
chore: read DocSearch credentials from the environment
drav0011 Sep 8, 2026
dea5608
feat(site): drop Showcase, add a page-outline heading and Next steps …
drav0011 Sep 8, 2026
6ab463d
chore: stop tracking the yarn install state
drav0011 Sep 8, 2026
6d713b3
docs(bds-runner): describe the run flow, server defaults, world and w…
drav0011 Sep 8, 2026
00ceef7
docs(server): core.shared as it is, and no core.state
drav0011 Sep 8, 2026
af2cc88
docs(server): server, sync, db and observable as they are
drav0011 Sep 9, 2026
1f5944b
chore(assets): drop the unused logos, refresh the social card
drav0011 Sep 9, 2026
6df939d
docs(ui): color and textAlign on Text
drav0011 Sep 9, 2026
967a3ea
docs(ui): Screen root page; every screen example starts with a root
drav0011 Sep 9, 2026
df7c3d4
feat(site): credit the author in the footer
drav0011 Sep 11, 2026
82d9f76
chore: add a clean script that clears regenerated output
drav0011 Sep 11, 2026
bfbf7f3
chore(deps): move the Docusaurus packages to ^3.10.2
drav0011 Sep 12, 2026
8020036
docs: fold the compiler into the ui section and rewrite it for compil…
drav0011 Sep 12, 2026
eead489
fix(sections): i18n ships from the server repository
drav0011 Sep 12, 2026
083883c
fix(sections): config and guides ship from the apps repository
drav0011 Sep 12, 2026
ad5b520
docs(navigation): navigation is a stack of keys
drav0011 Sep 12, 2026
847b3f4
docs(server): register declares four things, and the UI feeds moved out
drav0011 Sep 12, 2026
e326101
docs: drop the removed ui field primitives, and ore-styled fields are…
drav0011 Sep 13, 2026
990508a
docs(ore-styled): one component per host, and the themed Form has one…
drav0011 Sep 13, 2026
c923c21
docs(ui): group the components sidebar into eight folders
drav0011 Sep 13, 2026
5997bcb
docs: Form is a host, not a namespace
drav0011 Sep 13, 2026
94698e4
docs(server,sync): presence is an observable list
drav0011 Sep 14, 2026
c9ab065
docs(site): local search, a catalog section, beta labels
drav0011 Sep 17, 2026
bc0f3fe
docs(ore-styled): Tabs, ToggleButtons and fieldLabel pages, alphabeti…
drav0011 Sep 17, 2026
a3d983d
docs(catalog, config, guides): a section for each app
drav0011 Sep 17, 2026
4d9d42a
docs(i18n, filters): i18n authoring pages, filter pages cover install…
drav0011 Sep 17, 2026
e5c4cf1
docs(navigation): the realm page, params across realms
drav0011 Sep 17, 2026
0abab84
docs(server, sync, db): declarations and slots, one writer per namespace
drav0011 Sep 17, 2026
72b5cd0
docs(bds-runner, cli): pack optimizer, pin from manifests, the scaffo…
drav0011 Sep 17, 2026
0add77b
docs(ui): every component page in one folder, Trans, link params
drav0011 Sep 17, 2026
1ec7f4f
docs(ui): compiler pages for writing a screen, what the build writes,…
drav0011 Sep 17, 2026
ee69693
docs(ui): useComposed, ModalContext and withControl, protocol v0009, …
drav0011 Sep 17, 2026
418da5e
docs(ui): container presses as drops, SlotGrid without hideOwned
drav0011 Sep 18, 2026
2fb8534
docs: update release and filter installation guidance
drav0011 Sep 20, 2026
4ed69ea
style(home): remove pending label from marketplace readiness
drav0011 Sep 20, 2026
992b44f
docs: correct release-facing API guidance
drav0011 Sep 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# No environment variables are required to run or build this site.
14 changes: 9 additions & 5 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
name: Build Docusaurus
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7
with:
fetch-depth: 0

Expand All @@ -17,18 +17,22 @@ jobs:
npm install -g corepack
corepack enable

- uses: actions/setup-node@v4
- uses: actions/setup-node@v7
with:
node-version: 20
node-version: 22
cache: yarn

- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Build website
run: yarn build

# From v4 this action excludes dotfiles, so Docusaurus's `.nojekyll` is not in the artifact.
# Harmless here: artifact deployments are served as-is and never run Jekyll, and the build
# output has no underscore-prefixed paths for Jekyll to strip. If a dotfile ever has to ship,
# build the artifact by hand instead of using this action.
- name: Upload Build Artifact
uses: actions/upload-pages-artifact@v3
uses: actions/upload-pages-artifact@v5
with:
path: build

Expand All @@ -50,4 +54,4 @@ jobs:
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
uses: actions/deploy-pages@v5
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# Dependencies
/node_modules

# Yarn writes this on every install; it is a local cache, not a lockfile
.yarn/install-state.gz

# Production
/build

Expand All @@ -10,6 +13,7 @@

# Misc
.DS_Store
.env
.env.local
.env.development.local
.env.test.local
Expand All @@ -18,3 +22,5 @@
npm-debug.log*
yarn-debug.log*
yarn-error.log*

TODO
Binary file removed .yarn/install-state.gz
Binary file not shown.
28 changes: 10 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,43 +1,35 @@
# @bedrock-core/docs

Documentation for @bedrock-core, built using [Docusaurus](https://docusaurus.io/).
Documentation for @bedrock-core, built with [Docusaurus](https://docusaurus.io/).

Available in <https://bedrock-core.drav.dev>
Available at <https://bedrock-core.drav.dev>

## Installation
## Install

```bash
yarn
```

## Local Development
## Develop

```bash
yarn start
```

This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
Starts a local dev server and opens a browser window. Most changes are reflected live without a restart.

## Build

```bash
yarn build
```

This command generates static content into the `build` directory and can be served using any static contents hosting service.
Generates static content into the `build` directory, servable by any static hosting service.

## Deployment
## Writing a page

Using SSH:
Every page under `docs/` follows [`STYLE.md`](./STYLE.md).

```bash
USE_SSH=true yarn deploy
```

Not using SSH:

```bash
GIT_USER=<Your GitHub username> yarn deploy
```
## Sections

If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.
`src/data/sections.ts` is the registry of sections: id, category, status, description, icon and source repository. `docusaurus.config.ts` creates one docs-plugin instance per section that has a matching `docs/<id>` folder, and the navbar, sidebar switcher and home page all read the same registry.
132 changes: 132 additions & 0 deletions STYLE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
# Writing a docs page

House rules for every page under `docs/`. They extend the "Content fundamentals" in `design/DESIGN-GUIDE.md`; where the two differ, this file wins.

## Sections

One section = one folder under `docs/` = one route = one sidebar. `src/data/sections.ts` is the registry: id, category, status, description. Add a section there first; `docusaurus.config.ts` creates the docs-plugin instance from it.

```text
<section>/
index.md slug: / Overview
installation.md only when install differs from `npm install`
guides/ concepts and how-tos, sentence-case titles
components/ hooks/ api/ reference, one page per export, identifier titles
```

Sections with more than six pages use groups; smaller sections stay flat.

Sidebar labels: the section is the lowercase package name (`ore-styled`). Group labels are sentence case (`Get started`, `Guides`, `Components`, `Hooks`, `API`, `Deprecated`). Leaf labels are the identifier as typed (`Form.Toggle`, `useState`, `core.registry`).

Links: relative `.md` inside a section, absolute `/docs/<section>/...` across sections. Another package's mechanics get one sentence and a link, never a paragraph.

## Page types

**Overview** (`index.md`, `slug: /`, one per section)

```md
# ore-styled ← package name, lowercase
One sentence.

:::caution Beta … ::: ← until this package ships 1.0

## What is @bedrock-core/ore-styled?
## Install
## What you get ← **Noun** — mechanism, then what it protects you from
## Next steps ← - [`page`](./page.md) — description
```

**Guide** (`guides/*.md`): sentence-case H1, one-sentence intro, sections, `## Next steps`.

**Component** (`components/*.md`)

```md
# Button
One sentence.
![Button](/img/ore-styled/Button.png) ← optional

## Import
## Usage
## Props
| Prop | Type | Default | Description |
Inherits [control props](../control-props.md). ← one line, never repeated
## Examples ← ### sentence-case titles, one idea each, ≤ 25 lines
## Notes ← optional: engine facts only
```

**Function or hook** (`hooks/*.md`, `api/*.md`)

```md
# useState
One sentence.

## Import
## Signature ← one ```ts line
## Parameters
| Parameter | Type | Default | Description |
## Returns
## Usage
## Examples
## Notes
```

**Filter** (`filters/*.md`)

```md
# i18n
One sentence: what goes in, what comes out.

## Install ← config.json snippet, place in the stack
## Authoring
## What it generates
| Output | Where | Commit it? |
## Settings
| Setting | Type | Default | Description |
## Checks
| Check | What fails |
```

Reference pages end when the content ends: no `Next steps`, no `Best practices`. Overviews and guides always end with `## Next steps`.

## Tables

| Use | Header |
| --- | --- |
| Component props | `\| Prop \| Type \| Default \| Description \|` |
| Function parameters | `\| Parameter \| Type \| Default \| Description \|` |
| Options objects | `\| Option \| Type \| Default \| Description \|` |
| Filter settings | `\| Setting \| Type \| Default \| Description \|` |
| Export index | `\| Export \| Kind \| Description \|` |
| Section index | `\| Page \| Description \|` |

Cell rules: types in backticks, `\|` inside unions; Default is `—` when none; a required prop carries `<Req />` after its name (a red asterisk) and `—` as its default; descriptions are one sentence with no trailing period; a compound component gets one table per part under `### RadioGroup`, `### Radio`.

## Voice and typography

- Emoji: `✅` and `❌` only, and only where a yes/no scan helps — a yes/no column in a table, or a paired right/wrong code sample. Never in headings, prose or bullet lists. No other emoji or glyphs (`✓ ○ → ⇆ ✕`) outside literal program output.
- Sentence case for every heading. Package names lowercase in backticks. Component, hook and member names exactly as typed.
- Link lists: `` - [`name`](path) — description `` with an em dash.
- American spelling; always `behavior pack`.
- No `---` rules. No "we", "our", "us".
- `## Notes` for behavior facts, `## Limits` for what is not supported. Not `Limitations`, `Caveats`, `Things to know`, `Rules & Restrictions`.
- Front matter on every page: `sidebar_position` (integer) and `description` (one line; it feeds `llms.txt` and the meta tags).

## Never in a page

- Version history, migration guides, before/after blocks, "used to", "no longer", "what changed in". Changelogs live in each package's `CHANGELOG.md`.
- Dated measurements, session logs, spike names, "measured while building".
- Roadmap phrased as a promise ("not yet", "coming"). State the limit as a fact: "Horizontal scrolling is not exposed."
- Links into monorepo source files.
- Generic React tutorial content. The ui overview links react.dev once.

## Examples

- Import from the public package name.
- `console.warn`, never `console.log`.
- Examples take a `Player` parameter. The `world.afterEvents.buttonPush` + `isPlayer` boilerplate appears once, on the ui overview.
- JSX attribute values in braces: `flexDirection={'row'}`.
- One idea per example, at most 25 lines.

## Checks

`grep` over `docs/**/*.md` must return nothing for: `## Best Practices`, `^---$`, `^- Type:`, `## Next Steps`, `## In This Section`, `behaviour`, `colour`, `labelled`, `centred`, `recognise`, `serialised`, `parameterised`, `github.com/bedrock-core/ui/blob`, `used to`, `no longer`. `✅` and `❌` may appear only inside a table row or a code fence; every other emoji is an error.
Loading
Loading