- type events that are handed between components
- simplify the `resolve` function interface
- before we had return values and exceptions, now just a single union
type as return value
- move navigation to the Search component to reduce its
responsibilities
- flatten and simplify multi-level branching
- shuffle around code
- move the `resolve` function to the `Search` component module,
because it's only used there
Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>
- Move all global typography styles to its own file. This makes it
easier to find all the typography related definitions for newcomers.
- Prefix all typography related global CSS classes with a unique prefix
`.txt-`. This allows us to grep the codebase and see exactly where
they are applied. Another benefit of this convention is that it helps
to avoid accidentally mixing global and local styles. Having global
CSS classes that sometimes overlap with component CSS classes makes it
very hard to reason about the resulting visuals and making changes
unpredictable.
- Introduce CSS variables for standardised typography sizes and apply
them to the whole codebase consistently. This way we can adjust the
size in one place and it will be applied everywhere.
- Avoid using predefined HTML tags which might have differing styling
from browser to browser, e.g. `<h1>`, `<strong>`. We should stick to
applying styling either by adding a specific global CSS class or using
the predefined CSS variables, this way we can be sure that the styles
won't be overridden by browser defaults.
- Have a minimal set of modifiers `.txt-monospace` and `.txt-bold` and
apply them consistently. Since `.txt-monospace` is defined via a CSS
variable, we'll be able to switch out fonts via a user setting in the
future.
Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>