Introduction
Core is a React style and design system library, a bit like a fully-typed and modern styled-components or Stitches that can compile to near 0-runtime, and happens to work on React Native the same as on web, despite having no outside dependencies.
Well, sort of - on iOS and Android it depends on React Native, but on the web it has no outside dependencies besides React - yet it supports the full React Native API surface in 24-28Kb, depending on tree-shaking.
It primarily exports a styled
function and View
& Text
components, all of which accept the superset of the React Native API surface that Tamagui supports.
Tamagui supports a superset of the React Native style API, bringing many powerful abilities from CSS like media queries, pseudo selectors, container queries, and other selectors.
With createTamagui
you can create what are essentially media queries and typed CSS variables that work for styling, but also with the useTheme
and useMedia
hooks. Both can compile away with the optimizing compiler when used for styling, but they also are written to be extremely performant with explicit dirty tracking and signal-like re-render granularity.
Core supports its full feature-set at runtime and at compile-time (with @tamagui/static
). This means it's easy to set up and test out, but gives amazing performance when you need it.
Below @tamagui/core
is @tamagui/web
, which drops the React Native non-style props and saves an extra 10Kb or so of size. It's a great web-only style library much like a typed version of Stitches.