* origin/main: (33 commits) Improved server selector during account creation and signin (#2840) remove line height from text input for composer on ios (#2844) Add follow button to highlighted post (#2828) Cleaning up old codes pt_BR (#2809) Fix wrong translations in zh-CN localization (#2812) Adjust Japanese translation (#2814) Update ja messages.po (#2821) change follow to follow all when !== 20 (#2831) ios adult content link fix 🤦 (#2845) improves build.md completeness (#2835) increase stroke width for active hashtag icon (#2829) Update `blueskyweb.xyz` links to `bsky.social` (#2830) eas nightlies (#2826) Always show post dropdown button at the bottom of the post, add share button to highlighted post (#2646) Measure header layout reliably (#2817) Round line height (#2824) Design system tweaks (#2822) Fix layout calculations (#2816) Fix flashes and jumps when opening profile (#2815) Show text cursor on web bio (#2813) ...
Application Layout Framework (ALF)
A set of UI primitives and components.
Usage
Naming conventions follow Tailwind — delimited with a _ instead of - to
enable object access — with a couple exceptions:
Spacing
Uses "t-shirt" sizes xxs, xs, sm, md, lg, xl and xxl instead of
increments of 4px. We only use a few common spacings, and otherwise typically
rely on many one-off values.
Text Size
Uses "t-shirt" sizes xxs, xs, sm, md, lg, xl and xxl to match our
type scale.
Line Height
The text size atoms also apply a line-height with the same value as the size,
for a 1:1 ratio. tight and normal are retained for use in the few places
where we need leading.
Atoms
An (mostly-complete) set of style definitions that match Tailwind CSS selectors. These are static and reused throughout the app.
import { atoms } from '#/alf'
<View style={[atoms.flex_row]} />
Theme
Any values that rely on the theme, namely colors.
const t = useTheme()
<View style={[atoms.flex_row, t.atoms.bg]} />
Breakpoints
const b = useBreakpoints()
if (b.gtMobile) {
// render tablet or desktop UI
}