Package

purescript-yoga-react-native

Repository
rowtype-yoga/purescript-yoga-react-native
License
MIT
Uploaded by
pacchettibotti
Published on
2026-02-21T15:47:49Z

PureScript bindings for React Native macOS with 55+ native AppKit components.

Quick Start

# Clone and install
git clone https://github.com/rowtype-yoga/purescript-yoga-react-native.git
cd purescript-yoga-react-native
bun install
cd example-macos && bun install && cd ..

# Install CocoaPods
cd example-macos/macos && bundle exec pod install && cd ../..

# Build PureScript
cd example-macos && bunx spago build && cd ..

# Run the example app
cd example-macos && npx react-native run-macos

Using in Your Project

Add to spago.yaml:

extraPackages:
  yoga-react-native:
    git: https://github.com/rowtype-yoga/purescript-yoga-react-native.git
    ref: main
  yoga-react:
    git: https://github.com/rowtype-yoga/purescript-yoga-react.git
    ref: main
import Yoga.React.Native (text, tw, view)
import Yoga.React.Native.MacOS.Button (nativeButton)
import Yoga.React.Native.MacOS.Types as T

myButton = nativeButton
  { title: "Click me"
  , bezelStyle: T.push
  , onPress: handler_ doSomething
  , style: Style.style { height: 24.0 }
  }

Components

Input Controls

nativeButton nativeSwitch nativeSlider nativePopUp nativeComboBox nativeStepper nativeDatePicker nativeColorWell nativeCheckbox nativeRadioButton nativeSearchField nativeTokenField nativeSegmented

Text

nativeTextField nativeTextEditor

Display

nativeImage nativeAnimatedImage nativeVideoPlayer nativeLevelIndicator nativeProgress nativeSeparator nativePathControl

Layout

nativeBox nativeSplitView nativeTabView nativeScrollView sidebarLayout nativeToolbar nativeVisualEffect nativePatternBackground

Overlays

macosAlert nativeSheet nativePopover nativeContextMenu macosShowMenu

Data Views

nativeTableView nativeOutlineView

Files & Drag/Drop

nativeDropZone nativeFilePicker

Rich Media

nativeMapView nativePDFView nativeWebView nativeCameraView nativeRiveView

System Services

copyToClipboard macosShare macosNotify macosPlaySound macosSetStatusBarItem macosQuickLook macosShowColorPanel macosShowFontPanel say

AI & ML

recognizeText (OCR) useSpeechRecognition detectLanguage analyzeSentiment tokenize

Prerequisites

  • macOS 14+
  • Xcode 16+
  • Node.js 20+ / Bun
  • PureScript 0.15+ and Spago
  • CocoaPods
Modules
Yoga.React.Native
Yoga.React.Native.AccessibilityInfo
Yoga.React.Native.ActionSheetIOS
Yoga.React.Native.ActivityIndicator
Yoga.React.Native.Alert
Yoga.React.Native.Animated
Yoga.React.Native.AppState
Yoga.React.Native.Appearance
Yoga.React.Native.Attributes
Yoga.React.Native.Button
Yoga.React.Native.Clipboard
Yoga.React.Native.ColorWithSystemEffectMacOS
Yoga.React.Native.Dimensions
Yoga.React.Native.DynamicColorMacOS
Yoga.React.Native.Easing
Yoga.React.Native.Events
Yoga.React.Native.FS
Yoga.React.Native.FinderView
Yoga.React.Native.FlatList
Yoga.React.Native.I18nManager
Yoga.React.Native.Image
Yoga.React.Native.ImageBackground
Yoga.React.Native.InputAccessoryView
Yoga.React.Native.Internal
Yoga.React.Native.Keyboard
Yoga.React.Native.KeyboardAvoidingView
Yoga.React.Native.LayoutAnimation
Yoga.React.Native.Linking
Yoga.React.Native.MacOS.Alert
Yoga.React.Native.MacOS.AnimatedImage
Yoga.React.Native.MacOS.Box
Yoga.React.Native.MacOS.Button
Yoga.React.Native.MacOS.CameraView
Yoga.React.Native.MacOS.CheckMark
Yoga.React.Native.MacOS.Checkbox
Yoga.React.Native.MacOS.ColorPanel
Yoga.React.Native.MacOS.ColorWell
Yoga.React.Native.MacOS.ComboBox
Yoga.React.Native.MacOS.ContextMenu
Yoga.React.Native.MacOS.DatePicker
Yoga.React.Native.MacOS.DropZone
Yoga.React.Native.MacOS.Events
Yoga.React.Native.MacOS.FilePicker
Yoga.React.Native.MacOS.FontPanel
Yoga.React.Native.MacOS.GhosttyTerminal
Yoga.React.Native.MacOS.HelpButton
Yoga.React.Native.MacOS.HoverView
Yoga.React.Native.MacOS.Image
Yoga.React.Native.MacOS.LevelIndicator
Yoga.React.Native.MacOS.MapView
Yoga.React.Native.MacOS.Menu
Yoga.React.Native.MacOS.NaturalLanguage
Yoga.React.Native.MacOS.OCR
Yoga.React.Native.MacOS.OutlineView
Yoga.React.Native.MacOS.PDFView
Yoga.React.Native.MacOS.Pasteboard
Yoga.React.Native.MacOS.PathControl
Yoga.React.Native.MacOS.PatternBackground
Yoga.React.Native.MacOS.PopUp
Yoga.React.Native.MacOS.Popover
Yoga.React.Native.MacOS.Progress
Yoga.React.Native.MacOS.QuickLook
Yoga.React.Native.MacOS.RadioButton
Yoga.React.Native.MacOS.RichTextLabel
Yoga.React.Native.MacOS.Rive
Yoga.React.Native.MacOS.ScrollView
Yoga.React.Native.MacOS.SearchField
Yoga.React.Native.MacOS.Segmented
Yoga.React.Native.MacOS.Separator
Yoga.React.Native.MacOS.ShareService
Yoga.React.Native.MacOS.Sheet
Yoga.React.Native.MacOS.Sidebar
Yoga.React.Native.MacOS.Slider
Yoga.React.Native.MacOS.Sound
Yoga.React.Native.MacOS.SpeechRecognition
Yoga.React.Native.MacOS.SpeechSynthesizer
Yoga.React.Native.MacOS.SplitView
Yoga.React.Native.MacOS.StatusBarItem
Yoga.React.Native.MacOS.Stepper
Yoga.React.Native.MacOS.Switch
Yoga.React.Native.MacOS.TabView
Yoga.React.Native.MacOS.TableView
Yoga.React.Native.MacOS.TextEditor
Yoga.React.Native.MacOS.TextField
Yoga.React.Native.MacOS.TokenField
Yoga.React.Native.MacOS.Toolbar
Yoga.React.Native.MacOS.Types
Yoga.React.Native.MacOS.UserNotification
Yoga.React.Native.MacOS.VideoPlayer
Yoga.React.Native.MacOS.VisualEffect
Yoga.React.Native.MacOS.WebView
Yoga.React.Native.Matrix
Yoga.React.Native.Modal
Yoga.React.Native.NativeShowcase
Yoga.React.Native.PanResponder
Yoga.React.Native.PixelRatio
Yoga.React.Native.Platform
Yoga.React.Native.PlatformColor
Yoga.React.Native.Pressable
Yoga.React.Native.Reanimated
Yoga.React.Native.RefreshControl
Yoga.React.Native.SFSymbol
Yoga.React.Native.SafeAreaView
Yoga.React.Native.ScrollView
Yoga.React.Native.SectionList
Yoga.React.Native.Share
Yoga.React.Native.StatusBar
Yoga.React.Native.Style
Yoga.React.Native.StyleSheet
Yoga.React.Native.Styled
Yoga.React.Native.Switch
Yoga.React.Native.Text
Yoga.React.Native.TextInput
Yoga.React.Native.TouchableHighlight
Yoga.React.Native.TouchableOpacity
Yoga.React.Native.TouchableWithoutFeedback
Yoga.React.Native.View
Dependencies