- name
- style-topics
- description
- Stylesheets written as topics, so a user's AI can make a new look for d2. Built in proto1 v0.7.0.
- tags
- ai, spec
- status
- done
Style topics
An example AI specification: the one behind the Styles page's "Style topics" section, kept up to date while it was built.
Goal
Let a user change how every d2 page looks by asking their AI, for example "the logo says YAHOO, the background is dark green and the fonts are magenta", with nothing to install and no code to change.
Requirements
- A stylesheet is a topic in category
Style, written through the ordinary topics API. - It can change every colour and font token, and the logo text.
- A broken stylesheet must never break a page: it is listed with its errors and can't be picked.
- The AI learns the format from diesel2; the user learns the steps from Help.
Design
- Frontmatter:
brand(logo text, 1 to 24 characters),base(the built-in it starts from),fonts(a Google Fonts link). - A
```styleblock sets tokens for light and dark mode;```style darkoverrides dark mode only. Tokens not given come from the base. - Only the known tokens are allowed, and values are colours or font stacks: no
url(…),;,{or}. - Saving reports problems as
style: {ok, errors}in thePUTreply. - The choice is kept in the
d2stylecookie, holding the topic id (Style:yahoo).
Open questions
- None left. A per-user default will come with real login.
Status
Done: built in proto1 v0.7.0. The decision is logged in diesel2.