Table of Contents

User interface guidelines

this page is horribly written lmao remind me to rewrite it when my brain is working better

When making a user interface for software that uses PawSD, it's helpful to follow some consistent ways of presenting information so that it's the same or similar between different software and therefore less confusing.

Layout of zones

For example, in a navigation bar you would want to show which zone is providing the content the user is viewing. If the zone is in the daemon's contacts list, you should prefer to show the associated local name on its own. Otherwise, you should try to show the shortest edge name (in terms of number of edges) with the closest local name at the start and the actual zone's final edge name at the end (by start and end I mean the writing direction i.e. in English the local name would be on the left). If there is more than one edge name available you may want to have an expandable widget that can show all of them, and if there are no edge names available you should just show the self-proposed name on its own. You should put an arrow pointing in the text direction between each edge. Also, if the service is unambiguous (i.e. there's only one service within the zone that contains the kind of resource your application can handle) you don't need to show the service name, but otherwise, you should show it at the end after a colon or some similar kind of separator.

Colours and icons

Each zone label should be shown with an icon indicating its trust status, as well as a background colour if colour is available. In text-only interfaces you may choose to use abbreviations e.g. a single letter in place of icons. Note that these guidelines assume Western colour/icon symbolism because that's what I'm familiar with, you should probably use something that makes more sense for a given culture if that's your audience.

Examples

These are janky because i made them with dokuwiki wrap plugin default styles. please make yours look nicer ^_^

What is a "trust status" anyway

screenshot of signal messages where i explain trust levels. basically:
distrusted = you have specifically chosen to mark that zone as evil and bad
neutral = just default in case nothing else is set
introduced = default for when a zone was introduced via an edge pointer from another zone that was either trusted or introduced, and then you saved it locally. i think it would also save which zone it was introduced by in that case. the idea is its like an implicit conferring of trust but it's not as strong as actually trusting it yourself
trusted = you marked it as trusted because maybe you met up with its author in person or it was bundled with the software or whatever