Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ざっくり知る tamagui v1

kimizuy
February 18, 2023
74

ざっくり知る tamagui v1

2023/1/18に開催された第4回 LT 練習会(仮)の発表資料です。
https://gaji-lt.connpass.com/event/269690/

kimizuy

February 18, 2023
Tweet

Transcript

  1. 自己紹介 ID: @kimizuy 株式会社 Gaji-Labo フロントエンドエンジニア 最近は React や TypeScript

    をメインで使っています。 趣味はスプラトゥーン 3 です。 https://github.com/kimizuy https://twitter.com/kimizuy ざっくり知る tamagui v1 @kimizuy
  2. tamagui の概要 読み方は「たまぎゅい」らしい React Native と React Native for web

    で動作する UI ライブラリスイート ビルド時にコードを評価し、重い JS をよりフラットなツリーとより高速な CSS に変換 する React 用の新しい最適化コンパイラを提供する Core, Static, UI で構成される ざっくり知る tamagui v1 @kimizuy
  3. Tamamgui Core React Native の API を 100%サポートする依存性 0 の

    React Native/Web 用スタイルライブ ラリ styled() import { Stack, styled } from '@tamagui/core' export const Circle = styled(Stack, { backgroundColor: '$background', borderRadius: '$4', }) ざっくり知る tamagui v1 引用: https://tamagui.dev/docs/intro/why-a-compiler
  4. デザインシステム import { createTamagui, createTokens } from '@tamagui/core' const tokens

    = createTokens({ size, space: { ...size, '-1': -5, '-2': -10 }, radius: { 0: 0, 1: 3 }, zIndex: { 0: 0, 1: 100, 2: 200 }, color: { white: '#fff', black: '#000' }, }) export default createTamagui({ fonts: { heading: interFont, body: interFont, }, tokens, themes: { light: { bg: '#f2f2f2', color: tokens.color.black }, dark: { bg: '#111', color: tokens.color.white }, }, media: { sm: { maxWidth: 860 }, gtSm: { minWidth: 860 + 1 }, }, shorthands: { px: 'paddingHorizontal', f: 'flex', }, }) ざっくり知る tamagui v1 引用: https://tamagui.dev/docs/intro/why-a-compiler
  5. import { Stack } from '@tamagui/core' import { Heading }

    from './Heading' const App = (props) => ( <Stack px="$2" w={550} $gtSm={{ px: '$6' }}> <Heading size={props.big ? 'large' : 'small'}>Lorem ipsum dolor.</Heading> </Stack> ) ↓ import { Stack } from '@tamagui/core'; import { Heading } from './Heading'; export default (props) => ( <div className={_cn}> <span className={_cn2 + (_cn3 + (props.big ? _cn4 : _cn4))}>Lorem ipsum dolor.</span> </div> ); const _cn4 = " _col-b5vn3b _ff-4yewjq"; const _cn3 = " _ml-0px ..."; const _cn2 = " is_Heading ..."; const _cn = " is_Stack ..."; ざっくり知る tamagui v1 引用: https://tamagui.dev/docs/intro/why-a-compiler
  6. Tamagui UI Core の非常に強力なテーマプリミティブの上に構築されたコンポーネントキットです。 Composable-Component の API と完全なサイズコントロールとともに、今までの UI キット

    にはなかった新しいレベルのコントロールを可能にします。 ざっくり知る tamagui v1 引用: https://tamagui.dev/docs/intro/why-a-compiler
  7. ルートのディレクトリ構成 . ├── .git ├── .gitignore ├── .prettierrc ├── .watchmanconfig

    ├── .yarn ├── .yarnrc.yml ├── README.md ├── apps ├── node_modules ├── package.json ├── packages ├── tsconfig.base.json ├── tsconfig.json ├── turbo.json └── yarn.lock ざっくり知る tamagui v1 引用: https://tamagui.dev/docs/intro/why-a-compiler
  8. apps のディレクトリ構成 ├── expo │ ├── .expo │ ├── .gitignore

    │ ├── App.tsx │ ├── app.json │ ├── assets │ ├── babel.config.js │ ├── eas.json │ ├── index.js │ ├── metro.config.js │ ├── package.json │ ├── tamagui.config.ts │ └── tsconfig.json └── next ├── .eslintrc.js ├── .next ├── .tamagui ├── next-env.d.ts ├── next.config.js ├── node_modules ├── package.json ├── pages ├── public ├── tamagui.config.ts └── tsconfig.json 以上、ご静聴いただきありがとうございました。 ざっくり知る tamagui v1 引用: https://tamagui.dev/docs/intro/why-a-compiler