# grapp-dev/stacks

A set of components for building layouts in React Native. Powered by React Native Unistyles.

Repository: https://github.com/grapp-dev/stacks
Canonical: https://ross.abutalabs.com/products/grapp-dev-stacks
Homepage: https://stacks.grapp.dev
Language: TypeScript
License: MIT
License Family: permissive
Topics: react-native, react, typescript, stacks, layout, view, ui, user-interface, react-native-web
Last push: 2025-02-08T12:36:47+00:00

## Health v2 (maintenance only)
Score: 25/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 5, release rhythm 8, longevity 100
- inputs: {"age_days": 2341, "days_push": 571, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1028, forks 24 (observed 2026-08-28T04:03:17.303524+00:00)

## What it is
Stacks is a set of composable layout components (Box, Stack, Rows, Columns, Inline, Inset, Bleed, FloatBox, Tiles, Grid) for React Native, powered by React Native Unistyles. It centralizes spacing ownership in layout components so UI components stay margin-free, with responsive props, a debug mode, and a design grid.

## Use cases
- build layouts in react native without manual margins
- create responsive columns and rows with consistent spacing
- wrap content to next line with equal spacing
- position elements absolutely over a parent container
- align content to a design grid
- debug visual spacing issues in react native ui
- share layout code between react native web and native apps

## When to choose
- you use React Native (or React Native Web) and want a composable, spacing-disciplined layout system
- you already use or are happy to adopt React Native Unistyles for theming and breakpoints
- you want designer-friendly layout APIs with responsive props per screen size

## When to avoid
- your project does not use React Native or React Native Web
- you prefer plain Flexbox/StyleSheet or another styling solution without Unistyles
- you need a full component kit with buttons, inputs, and themed widgets rather than layout primitives

## Facets
- artifact type: library
- maturity: active
- function: ui-components, frontend-framework, theme
- domain: mobile-development, frontend, web-development, cross-platform
- platform: cross-platform
- tags: react-native, layout-components, unistyles, spacing, design-system, typescript, responsive-design, mobile, web-server, ios, android

## Member repositories
- grapp-dev/stacks (main) score 25

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:17.303524+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T07:07:46.229963+00:00, confidence not recorded.
  - readme: https://github.com/grapp-dev/stacks (fetched 2026-08-28T04:03:17.303524+00:00, sha 627b09371dc5)
  - homepage: https://stacks.grapp.dev (fetched 2026-08-29T13:08:08.660342+00:00, sha 7d6852313524)
  - site_page: https://stacks.grapp.dev/docs (fetched 2026-08-29T13:08:08.669736+00:00, sha 139f71b82c4a)
  - site_page: https://stacks.grapp.dev/about (fetched 2026-08-29T13:08:08.671934+00:00, sha 40d0282e37c5)
  - site_page: https://stacks.grapp.dev/docs/getting-started (fetched 2026-08-29T13:08:08.673669+00:00, sha e15bef4e1cb4)
  - site_page: https://stacks.grapp.dev/docs/components/box (fetched 2026-08-29T13:08:08.675575+00:00, sha f900021dfa42)
  - site_page: https://stacks.grapp.dev/docs/components/bleed (fetched 2026-08-29T13:08:08.677925+00:00, sha 7d5ae12c3200)
  - site_page: https://stacks.grapp.dev/docs/components/columns (fetched 2026-08-29T13:08:08.679708+00:00, sha b5ded101fe73)
  - site_page: https://stacks.grapp.dev/docs/components/float-box (fetched 2026-08-29T13:08:08.682049+00:00, sha 04a0ec65ce68)
  - site_page: https://stacks.grapp.dev/docs/components/inline (fetched 2026-08-29T13:08:08.683975+00:00, sha 6b43df9d8c6e)
- Data as of 2026-08-30T08:39:29.467469+00:00.
