Peace 2 weeks ago
parent 6fa7d875db
commit 2893d0bdff
  1. 24
      lite.todo/app.json
  2. 71
      lite.todo/app/(tabs)/_layout.tsx
  3. 12
      lite.todo/app/(tabs)/done.tsx
  4. 16
      lite.todo/app/(tabs)/index.tsx
  5. 8
      lite.todo/app/_layout.tsx
  6. 21
      lite.todo/eas.json
  7. 163
      lite.todo/package-lock.json
  8. 8
      lite.todo/package.json
  9. 312
      lite.todo/tailwind.config.js

@ -1,7 +1,7 @@
{ {
"expo": { "expo": {
"name": "lite.todo", "name": "Lite Todo",
"slug": "lite.todo", "slug": "lite-todo",
"version": "1.0.0", "version": "1.0.0",
"orientation": "portrait", "orientation": "portrait",
"icon": "./assets/icon.png", "icon": "./assets/icon.png",
@ -16,6 +16,7 @@
"supportsTablet": true "supportsTablet": true
}, },
"android": { "android": {
"package": "com.peadorr.litetodo",
"adaptiveIcon": { "adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png", "foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#ffffff" "backgroundColor": "#ffffff"
@ -25,7 +26,22 @@
"web": { "web": {
"favicon": "./assets/favicon.png" "favicon": "./assets/favicon.png"
}, },
"plugins": ["expo-router"], "plugins": [
"scheme": "lite-todo-scheme" "expo-router",
[
"react-native-google-mobile-ads",
{
"androidAppId": "ca-app-pub-7854988771210967~3806885931"
}
]
],
"scheme": "lite-todo-scheme",
"extra": {
"router": {},
"eas": {
"projectId": "74d1edfd-96bc-4306-a71a-60f7b9f99717"
}
},
"owner": "peadorr"
} }
} }

@ -1,42 +1,45 @@
import { Tabs } from "expo-router"; import { Tabs } from "expo-router";
import { MaterialIcons } from "@expo/vector-icons"; import { MaterialIcons } from "@expo/vector-icons";
import { View } from "react-native-animatable";
export default function TabLayout() { export default function TabLayout() {
return ( return (
<Tabs <>
screenOptions={{ <Tabs
headerShown: false, screenOptions={{
tabBarStyle: { height: 56 }, headerShown: false,
tabBarLabelStyle: { fontSize: 12 }, tabBarStyle: { height: 56 },
tabBarHideOnKeyboard: false, tabBarLabelStyle: { fontSize: 12 },
}} tabBarHideOnKeyboard: false,
>
<Tabs.Screen
name="index"
options={{
title: "할 일",
tabBarIcon: ({ color, focused, size }) => (
<MaterialIcons
name={focused ? "check-box" : "check-box-outline-blank"}
size={size ?? 24}
color={color}
/>
),
}} }}
/> >
<Tabs.Screen <Tabs.Screen
name="done" name="index"
options={{ options={{
title: "완료됨", title: "할 일",
tabBarIcon: ({ color, focused, size }) => ( tabBarIcon: ({ color, focused, size }) => (
<MaterialIcons <MaterialIcons
name={focused ? "done-all" : "done"} name={focused ? "check-box" : "check-box-outline-blank"}
size={size ?? 24} size={size ?? 24}
color={color} color={color}
/> />
), ),
}} }}
/> />
</Tabs> <Tabs.Screen
name="done"
options={{
title: "완료됨",
tabBarIcon: ({ color, focused, size }) => (
<MaterialIcons
name={focused ? "done-all" : "done"}
size={size ?? 24}
color={color}
/>
),
}}
/>
</Tabs>
</>
); );
} }

@ -6,7 +6,15 @@ import { Text } from "@/components/ui/text";
import { VStack } from "@/components/ui/vstack"; import { VStack } from "@/components/ui/vstack";
import { useTodosCtx } from "@/store/todoProvider"; import { useTodosCtx } from "@/store/todoProvider";
import { SafeAreaView } from "react-native-safe-area-context"; import { SafeAreaView } from "react-native-safe-area-context";
import {
BannerAd,
BannerAdSize,
TestIds,
} from "react-native-google-mobile-ads";
const BANNER_UNIT_ID = __DEV__
? TestIds.BANNER
: "ca-app-pub-7854988771210967~3806885931";
export default function DoneTab() { export default function DoneTab() {
const { doneTodos, toggle, remove, clearDone } = useTodosCtx(); const { doneTodos, toggle, remove, clearDone } = useTodosCtx();
@ -30,6 +38,10 @@ export default function DoneTab() {
<ButtonText> </ButtonText> <ButtonText> </ButtonText>
</Button> </Button>
</HStack> </HStack>
<BannerAd
unitId={BANNER_UNIT_ID}
size={BannerAdSize.ANCHORED_ADAPTIVE_BANNER}
/>
</VStack> </VStack>
</SafeAreaView> </SafeAreaView>
); );

@ -9,6 +9,16 @@ import { useTodosCtx } from "@/store/todoProvider";
import { useState } from "react"; import { useState } from "react";
import { KeyboardAvoidingView, Platform, View } from "react-native"; import { KeyboardAvoidingView, Platform, View } from "react-native";
import { SafeAreaView } from "react-native-safe-area-context"; import { SafeAreaView } from "react-native-safe-area-context";
import {
BannerAd,
BannerAdSize,
TestIds,
} from "react-native-google-mobile-ads";
import { useSafeAreaInsets } from "react-native-safe-area-context";
const BANNER_UNIT_ID = __DEV__
? TestIds.BANNER
: "ca-app-pub-7854988771210967~3806885931";
export default function ActiveTab() { export default function ActiveTab() {
const { todos, activeTodos, leftCount, add, toggle, completeAll, clearDone } = const { todos, activeTodos, leftCount, add, toggle, completeAll, clearDone } =
@ -20,6 +30,8 @@ export default function ActiveTab() {
setTitle(""); setTitle("");
}; };
const insets = useSafeAreaInsets();
return ( return (
<SafeAreaView className="flex-1 px-4 py-1 bg-white dark:bg-neutral-900"> <SafeAreaView className="flex-1 px-4 py-1 bg-white dark:bg-neutral-900">
<VStack className="flex-1 gap-3"> <VStack className="flex-1 gap-3">
@ -52,6 +64,10 @@ export default function ActiveTab() {
> >
<ButtonText> </ButtonText> <ButtonText> </ButtonText>
</Button> */} </Button> */}
<BannerAd
unitId={BANNER_UNIT_ID}
size={BannerAdSize.ANCHORED_ADAPTIVE_BANNER}
/>
</VStack> </VStack>
</SafeAreaView> </SafeAreaView>
); );

@ -6,8 +6,16 @@ import { Stack } from "expo-router";
import { GluestackUIProvider } from "@/components/ui/gluestack-ui-provider"; import { GluestackUIProvider } from "@/components/ui/gluestack-ui-provider";
import "@/global.css"; import "@/global.css";
import { TodosProvider } from "@/store/todoProvider"; import { TodosProvider } from "@/store/todoProvider";
import { useEffect } from "react";
import mobileAds from "react-native-google-mobile-ads";
export default function App() { export default function App() {
useEffect(() => {
mobileAds()
.initialize()
.catch((e) => console.warn(e));
}, []);
return ( return (
<TodosProvider> <TodosProvider>
<GluestackUIProvider mode="light"> <GluestackUIProvider mode="light">

@ -0,0 +1,21 @@
{
"cli": {
"version": ">= 16.18.0",
"appVersionSource": "remote"
},
"build": {
"development": {
"developmentClient": true,
"distribution": "internal"
},
"preview": {
"distribution": "internal"
},
"production": {
"autoIncrement": true
}
},
"submit": {
"production": {}
}
}

@ -17,6 +17,7 @@
"babel-plugin-module-resolver": "^5.0.2", "babel-plugin-module-resolver": "^5.0.2",
"expo": "~53.0.22", "expo": "~53.0.22",
"expo-constants": "~17.1.7", "expo-constants": "~17.1.7",
"expo-dev-client": "~5.2.4",
"expo-linking": "~7.1.7", "expo-linking": "~7.1.7",
"expo-router": "~5.1.5", "expo-router": "~5.1.5",
"expo-status-bar": "~2.2.3", "expo-status-bar": "~2.2.3",
@ -27,6 +28,7 @@
"react-dom": "^19.1.1", "react-dom": "^19.1.1",
"react-native": "0.79.6", "react-native": "0.79.6",
"react-native-animatable": "^1.4.0", "react-native-animatable": "^1.4.0",
"react-native-google-mobile-ads": "^15.7.0",
"react-native-reanimated": "^4.1.0", "react-native-reanimated": "^4.1.0",
"react-native-safe-area-context": "5.4.0", "react-native-safe-area-context": "5.4.0",
"react-native-screens": "~4.11.1", "react-native-screens": "~4.11.1",
@ -2187,6 +2189,12 @@
"tailwindcss": "*" "tailwindcss": "*"
} }
}, },
"node_modules/@iabtcf/core": {
"version": "1.5.6",
"resolved": "https://registry.npmjs.org/@iabtcf/core/-/core-1.5.6.tgz",
"integrity": "sha512-u2q9thI9vLurYZdGtyJsDYOqoeLc4EgQsYGSc+UVibYII61B/ENJPZS6eFlML1F0hSoTR/goptpo5nGRDkKd2w==",
"license": "Apache-2.0"
},
"node_modules/@internationalized/date": { "node_modules/@internationalized/date": {
"version": "3.9.0", "version": "3.9.0",
"resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.9.0.tgz", "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.9.0.tgz",
@ -4922,6 +4930,22 @@
"node": ">= 14" "node": ">= 14"
} }
}, },
"node_modules/ajv": {
"version": "8.11.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
"integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.1",
"json-schema-traverse": "^1.0.0",
"require-from-string": "^2.0.2",
"uri-js": "^4.2.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/epoberezkin"
}
},
"node_modules/anser": { "node_modules/anser": {
"version": "1.4.10", "version": "1.4.10",
"resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz",
@ -6155,6 +6179,15 @@
"node": ">= 0.8" "node": ">= 0.8"
} }
}, },
"node_modules/dequal": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
"integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/destroy": { "node_modules/destroy": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
@ -6494,6 +6527,58 @@
"react-native": "*" "react-native": "*"
} }
}, },
"node_modules/expo-dev-client": {
"version": "5.2.4",
"resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-5.2.4.tgz",
"integrity": "sha512-s/N/nK5LPo0QZJpV4aPijxyrzV4O49S3dN8D2fljqrX2WwFZzWwFO6dX1elPbTmddxumdcpczsdUPY+Ms8g43g==",
"license": "MIT",
"dependencies": {
"expo-dev-launcher": "5.1.16",
"expo-dev-menu": "6.1.14",
"expo-dev-menu-interface": "1.10.0",
"expo-manifests": "~0.16.6",
"expo-updates-interface": "~1.1.0"
},
"peerDependencies": {
"expo": "*"
}
},
"node_modules/expo-dev-launcher": {
"version": "5.1.16",
"resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-5.1.16.tgz",
"integrity": "sha512-tbCske9pvbozaEblyxoyo/97D6od9Ma4yAuyUnXtRET1CKAPKYS+c4fiZ+I3B4qtpZwN3JNFUjG3oateN0y6Hg==",
"license": "MIT",
"dependencies": {
"ajv": "8.11.0",
"expo-dev-menu": "6.1.14",
"expo-manifests": "~0.16.6",
"resolve-from": "^5.0.0"
},
"peerDependencies": {
"expo": "*"
}
},
"node_modules/expo-dev-menu": {
"version": "6.1.14",
"resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-6.1.14.tgz",
"integrity": "sha512-yonNMg2GHJZtuisVowdl1iQjZfYP85r1D1IO+ar9D9zlrBPBJhq2XEju52jd1rDmDkmDuEhBSbPNhzIcsBNiPg==",
"license": "MIT",
"dependencies": {
"expo-dev-menu-interface": "1.10.0"
},
"peerDependencies": {
"expo": "*"
}
},
"node_modules/expo-dev-menu-interface": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/expo-dev-menu-interface/-/expo-dev-menu-interface-1.10.0.tgz",
"integrity": "sha512-NxtM/qot5Rh2cY333iOE87dDg1S8CibW+Wu4WdLua3UMjy81pXYzAGCZGNOeY7k9GpNFqDPNDXWyBSlk9r2pBg==",
"license": "MIT",
"peerDependencies": {
"expo": "*"
}
},
"node_modules/expo-file-system": { "node_modules/expo-file-system": {
"version": "18.1.11", "version": "18.1.11",
"resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-18.1.11.tgz", "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-18.1.11.tgz",
@ -6517,6 +6602,12 @@
"react": "*" "react": "*"
} }
}, },
"node_modules/expo-json-utils": {
"version": "0.15.0",
"resolved": "https://registry.npmjs.org/expo-json-utils/-/expo-json-utils-0.15.0.tgz",
"integrity": "sha512-duRT6oGl80IDzH2LD2yEFWNwGIC2WkozsB6HF3cDYNoNNdUvFk6uN3YiwsTsqVM/D0z6LEAQ01/SlYvN+Fw0JQ==",
"license": "MIT"
},
"node_modules/expo-keep-awake": { "node_modules/expo-keep-awake": {
"version": "14.1.4", "version": "14.1.4",
"resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-14.1.4.tgz", "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-14.1.4.tgz",
@ -6541,6 +6632,19 @@
"react-native": "*" "react-native": "*"
} }
}, },
"node_modules/expo-manifests": {
"version": "0.16.6",
"resolved": "https://registry.npmjs.org/expo-manifests/-/expo-manifests-0.16.6.tgz",
"integrity": "sha512-1A+do6/mLUWF9xd3uCrlXr9QFDbjbfqAYmUy8UDLOjof1lMrOhyeC4Yi6WexA/A8dhZEpIxSMCKfn7G4aHAh4w==",
"license": "MIT",
"dependencies": {
"@expo/config": "~11.0.12",
"expo-json-utils": "~0.15.0"
},
"peerDependencies": {
"expo": "*"
}
},
"node_modules/expo-modules-autolinking": { "node_modules/expo-modules-autolinking": {
"version": "2.1.14", "version": "2.1.14",
"resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-2.1.14.tgz", "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-2.1.14.tgz",
@ -6636,6 +6740,15 @@
"react-native": "*" "react-native": "*"
} }
}, },
"node_modules/expo-updates-interface": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/expo-updates-interface/-/expo-updates-interface-1.1.0.tgz",
"integrity": "sha512-DeB+fRe0hUDPZhpJ4X4bFMAItatFBUPjw/TVSbJsaf3Exeami+2qbbJhWkcTMoYHOB73nOIcaYcWXYJnCJXO0w==",
"license": "MIT",
"peerDependencies": {
"expo": "*"
}
},
"node_modules/exponential-backoff": { "node_modules/exponential-backoff": {
"version": "3.1.2", "version": "3.1.2",
"resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.2.tgz", "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.2.tgz",
@ -7550,6 +7663,12 @@
"integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/json-schema-traverse": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"license": "MIT"
},
"node_modules/json5": { "node_modules/json5": {
"version": "2.2.3", "version": "2.2.3",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
@ -9698,6 +9817,24 @@
"react-native": "*" "react-native": "*"
} }
}, },
"node_modules/react-native-google-mobile-ads": {
"version": "15.7.0",
"resolved": "https://registry.npmjs.org/react-native-google-mobile-ads/-/react-native-google-mobile-ads-15.7.0.tgz",
"integrity": "sha512-VAskkfiK/ct9jer0XlASclgpiDLYnaLf4RPCcoenneZ3wVGfPwOtQ2T/HVZ6ZNc42BmRIRefqQSCWZPqIA2Drg==",
"license": "Apache-2.0",
"dependencies": {
"@iabtcf/core": "^1.5.3",
"use-deep-compare-effect": "^1.8.1"
},
"peerDependencies": {
"expo": ">=47.0.0"
},
"peerDependenciesMeta": {
"expo": {
"optional": true
}
}
},
"node_modules/react-native-is-edge-to-edge": { "node_modules/react-native-is-edge-to-edge": {
"version": "1.2.1", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/react-native-is-edge-to-edge/-/react-native-is-edge-to-edge-1.2.1.tgz", "resolved": "https://registry.npmjs.org/react-native-is-edge-to-edge/-/react-native-is-edge-to-edge-1.2.1.tgz",
@ -11316,6 +11453,32 @@
"browserslist": ">= 4.21.0" "browserslist": ">= 4.21.0"
} }
}, },
"node_modules/uri-js": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"license": "BSD-2-Clause",
"dependencies": {
"punycode": "^2.1.0"
}
},
"node_modules/use-deep-compare-effect": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/use-deep-compare-effect/-/use-deep-compare-effect-1.8.1.tgz",
"integrity": "sha512-kbeNVZ9Zkc0RFGpfMN3MNfaKNvcLNyxOAAd9O4CBZ+kCBXXscn9s/4I+8ytUER4RDpEYs5+O6Rs4PqiZ+rHr5Q==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.12.5",
"dequal": "^2.0.2"
},
"engines": {
"node": ">=10",
"npm": ">=6"
},
"peerDependencies": {
"react": ">=16.13"
}
},
"node_modules/use-latest-callback": { "node_modules/use-latest-callback": {
"version": "0.2.4", "version": "0.2.4",
"resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.2.4.tgz", "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.2.4.tgz",

@ -6,7 +6,9 @@
"start": "expo start", "start": "expo start",
"android": "expo start --android --offline", "android": "expo start --android --offline",
"ios": "expo start --ios --offline", "ios": "expo start --ios --offline",
"web": "expo start --web --offline" "web": "expo start --web --offline",
"build:android:dev": "eas build -p android --profile development",
"dev": "expo start --dev-client"
}, },
"dependencies": { "dependencies": {
"@expo/html-elements": "^0.10.1", "@expo/html-elements": "^0.10.1",
@ -28,6 +30,7 @@
"react-dom": "^19.1.1", "react-dom": "^19.1.1",
"react-native": "0.79.6", "react-native": "0.79.6",
"react-native-animatable": "^1.4.0", "react-native-animatable": "^1.4.0",
"react-native-google-mobile-ads": "^15.7.0",
"react-native-reanimated": "^4.1.0", "react-native-reanimated": "^4.1.0",
"react-native-safe-area-context": "5.4.0", "react-native-safe-area-context": "5.4.0",
"react-native-screens": "~4.11.1", "react-native-screens": "~4.11.1",
@ -35,7 +38,8 @@
"react-native-worklets": "^0.5.0", "react-native-worklets": "^0.5.0",
"react-stately": "^3.39.0", "react-stately": "^3.39.0",
"tailwind-variants": "^0.1.20", "tailwind-variants": "^0.1.20",
"tailwindcss": "^3.4.17" "tailwindcss": "^3.4.17",
"expo-dev-client": "~5.2.4"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.25.2", "@babel/core": "^7.25.2",

@ -1,15 +1,15 @@
/** @type {import('tailwindcss').Config} */ /** @type {import('tailwindcss').Config} */
module.exports = { module.exports = {
darkMode: process.env.DARK_MODE ? process.env.DARK_MODE : 'class', darkMode: process.env.DARK_MODE ? process.env.DARK_MODE : "class",
content: [ content: [
'./app/**/*.{html,js,jsx,ts,tsx,mdx}', "./app/**/*.{html,js,jsx,ts,tsx,mdx}",
'./components/**/*.{html,js,jsx,ts,tsx,mdx}', "./components/**/*.{html,js,jsx,ts,tsx,mdx}",
'./utils/**/*.{html,js,jsx,ts,tsx,mdx}', "./utils/**/*.{html,js,jsx,ts,tsx,mdx}",
'./*.{html,js,jsx,ts,tsx,mdx}', "./*.{html,js,jsx,ts,tsx,mdx}",
'./src/**/*.{html,js,jsx,ts,tsx,mdx}', "./src/**/*.{html,js,jsx,ts,tsx,mdx}",
], ],
presets: [require('nativewind/preset')], presets: [require("nativewind/preset")],
important: 'html', important: "html",
safelist: [ safelist: [
{ {
pattern: pattern:
@ -20,186 +20,186 @@ module.exports = {
extend: { extend: {
colors: { colors: {
primary: { primary: {
0: 'rgb(var(--color-primary-0)/<alpha-value>)', 0: "rgb(var(--color-primary-0)/<alpha-value>)",
50: 'rgb(var(--color-primary-50)/<alpha-value>)', 50: "rgb(var(--color-primary-50)/<alpha-value>)",
100: 'rgb(var(--color-primary-100)/<alpha-value>)', 100: "rgb(var(--color-primary-100)/<alpha-value>)",
200: 'rgb(var(--color-primary-200)/<alpha-value>)', 200: "rgb(var(--color-primary-200)/<alpha-value>)",
300: 'rgb(var(--color-primary-300)/<alpha-value>)', 300: "rgb(var(--color-primary-300)/<alpha-value>)",
400: 'rgb(var(--color-primary-400)/<alpha-value>)', 400: "rgb(var(--color-primary-400)/<alpha-value>)",
500: 'rgb(var(--color-primary-500)/<alpha-value>)', 500: "rgb(var(--color-primary-500)/<alpha-value>)",
600: 'rgb(var(--color-primary-600)/<alpha-value>)', 600: "rgb(var(--color-primary-600)/<alpha-value>)",
700: 'rgb(var(--color-primary-700)/<alpha-value>)', 700: "rgb(var(--color-primary-700)/<alpha-value>)",
800: 'rgb(var(--color-primary-800)/<alpha-value>)', 800: "rgb(var(--color-primary-800)/<alpha-value>)",
900: 'rgb(var(--color-primary-900)/<alpha-value>)', 900: "rgb(var(--color-primary-900)/<alpha-value>)",
950: 'rgb(var(--color-primary-950)/<alpha-value>)', 950: "rgb(var(--color-primary-950)/<alpha-value>)",
}, },
secondary: { secondary: {
0: 'rgb(var(--color-secondary-0)/<alpha-value>)', 0: "rgb(var(--color-secondary-0)/<alpha-value>)",
50: 'rgb(var(--color-secondary-50)/<alpha-value>)', 50: "rgb(var(--color-secondary-50)/<alpha-value>)",
100: 'rgb(var(--color-secondary-100)/<alpha-value>)', 100: "rgb(var(--color-secondary-100)/<alpha-value>)",
200: 'rgb(var(--color-secondary-200)/<alpha-value>)', 200: "rgb(var(--color-secondary-200)/<alpha-value>)",
300: 'rgb(var(--color-secondary-300)/<alpha-value>)', 300: "rgb(var(--color-secondary-300)/<alpha-value>)",
400: 'rgb(var(--color-secondary-400)/<alpha-value>)', 400: "rgb(var(--color-secondary-400)/<alpha-value>)",
500: 'rgb(var(--color-secondary-500)/<alpha-value>)', 500: "rgb(var(--color-secondary-500)/<alpha-value>)",
600: 'rgb(var(--color-secondary-600)/<alpha-value>)', 600: "rgb(var(--color-secondary-600)/<alpha-value>)",
700: 'rgb(var(--color-secondary-700)/<alpha-value>)', 700: "rgb(var(--color-secondary-700)/<alpha-value>)",
800: 'rgb(var(--color-secondary-800)/<alpha-value>)', 800: "rgb(var(--color-secondary-800)/<alpha-value>)",
900: 'rgb(var(--color-secondary-900)/<alpha-value>)', 900: "rgb(var(--color-secondary-900)/<alpha-value>)",
950: 'rgb(var(--color-secondary-950)/<alpha-value>)', 950: "rgb(var(--color-secondary-950)/<alpha-value>)",
}, },
tertiary: { tertiary: {
50: 'rgb(var(--color-tertiary-50)/<alpha-value>)', 50: "rgb(var(--color-tertiary-50)/<alpha-value>)",
100: 'rgb(var(--color-tertiary-100)/<alpha-value>)', 100: "rgb(var(--color-tertiary-100)/<alpha-value>)",
200: 'rgb(var(--color-tertiary-200)/<alpha-value>)', 200: "rgb(var(--color-tertiary-200)/<alpha-value>)",
300: 'rgb(var(--color-tertiary-300)/<alpha-value>)', 300: "rgb(var(--color-tertiary-300)/<alpha-value>)",
400: 'rgb(var(--color-tertiary-400)/<alpha-value>)', 400: "rgb(var(--color-tertiary-400)/<alpha-value>)",
500: 'rgb(var(--color-tertiary-500)/<alpha-value>)', 500: "rgb(var(--color-tertiary-500)/<alpha-value>)",
600: 'rgb(var(--color-tertiary-600)/<alpha-value>)', 600: "rgb(var(--color-tertiary-600)/<alpha-value>)",
700: 'rgb(var(--color-tertiary-700)/<alpha-value>)', 700: "rgb(var(--color-tertiary-700)/<alpha-value>)",
800: 'rgb(var(--color-tertiary-800)/<alpha-value>)', 800: "rgb(var(--color-tertiary-800)/<alpha-value>)",
900: 'rgb(var(--color-tertiary-900)/<alpha-value>)', 900: "rgb(var(--color-tertiary-900)/<alpha-value>)",
950: 'rgb(var(--color-tertiary-950)/<alpha-value>)', 950: "rgb(var(--color-tertiary-950)/<alpha-value>)",
}, },
error: { error: {
0: 'rgb(var(--color-error-0)/<alpha-value>)', 0: "rgb(var(--color-error-0)/<alpha-value>)",
50: 'rgb(var(--color-error-50)/<alpha-value>)', 50: "rgb(var(--color-error-50)/<alpha-value>)",
100: 'rgb(var(--color-error-100)/<alpha-value>)', 100: "rgb(var(--color-error-100)/<alpha-value>)",
200: 'rgb(var(--color-error-200)/<alpha-value>)', 200: "rgb(var(--color-error-200)/<alpha-value>)",
300: 'rgb(var(--color-error-300)/<alpha-value>)', 300: "rgb(var(--color-error-300)/<alpha-value>)",
400: 'rgb(var(--color-error-400)/<alpha-value>)', 400: "rgb(var(--color-error-400)/<alpha-value>)",
500: 'rgb(var(--color-error-500)/<alpha-value>)', 500: "rgb(var(--color-error-500)/<alpha-value>)",
600: 'rgb(var(--color-error-600)/<alpha-value>)', 600: "rgb(var(--color-error-600)/<alpha-value>)",
700: 'rgb(var(--color-error-700)/<alpha-value>)', 700: "rgb(var(--color-error-700)/<alpha-value>)",
800: 'rgb(var(--color-error-800)/<alpha-value>)', 800: "rgb(var(--color-error-800)/<alpha-value>)",
900: 'rgb(var(--color-error-900)/<alpha-value>)', 900: "rgb(var(--color-error-900)/<alpha-value>)",
950: 'rgb(var(--color-error-950)/<alpha-value>)', 950: "rgb(var(--color-error-950)/<alpha-value>)",
}, },
success: { success: {
0: 'rgb(var(--color-success-0)/<alpha-value>)', 0: "rgb(var(--color-success-0)/<alpha-value>)",
50: 'rgb(var(--color-success-50)/<alpha-value>)', 50: "rgb(var(--color-success-50)/<alpha-value>)",
100: 'rgb(var(--color-success-100)/<alpha-value>)', 100: "rgb(var(--color-success-100)/<alpha-value>)",
200: 'rgb(var(--color-success-200)/<alpha-value>)', 200: "rgb(var(--color-success-200)/<alpha-value>)",
300: 'rgb(var(--color-success-300)/<alpha-value>)', 300: "rgb(var(--color-success-300)/<alpha-value>)",
400: 'rgb(var(--color-success-400)/<alpha-value>)', 400: "rgb(var(--color-success-400)/<alpha-value>)",
500: 'rgb(var(--color-success-500)/<alpha-value>)', 500: "rgb(var(--color-success-500)/<alpha-value>)",
600: 'rgb(var(--color-success-600)/<alpha-value>)', 600: "rgb(var(--color-success-600)/<alpha-value>)",
700: 'rgb(var(--color-success-700)/<alpha-value>)', 700: "rgb(var(--color-success-700)/<alpha-value>)",
800: 'rgb(var(--color-success-800)/<alpha-value>)', 800: "rgb(var(--color-success-800)/<alpha-value>)",
900: 'rgb(var(--color-success-900)/<alpha-value>)', 900: "rgb(var(--color-success-900)/<alpha-value>)",
950: 'rgb(var(--color-success-950)/<alpha-value>)', 950: "rgb(var(--color-success-950)/<alpha-value>)",
}, },
warning: { warning: {
0: 'rgb(var(--color-warning-0)/<alpha-value>)', 0: "rgb(var(--color-warning-0)/<alpha-value>)",
50: 'rgb(var(--color-warning-50)/<alpha-value>)', 50: "rgb(var(--color-warning-50)/<alpha-value>)",
100: 'rgb(var(--color-warning-100)/<alpha-value>)', 100: "rgb(var(--color-warning-100)/<alpha-value>)",
200: 'rgb(var(--color-warning-200)/<alpha-value>)', 200: "rgb(var(--color-warning-200)/<alpha-value>)",
300: 'rgb(var(--color-warning-300)/<alpha-value>)', 300: "rgb(var(--color-warning-300)/<alpha-value>)",
400: 'rgb(var(--color-warning-400)/<alpha-value>)', 400: "rgb(var(--color-warning-400)/<alpha-value>)",
500: 'rgb(var(--color-warning-500)/<alpha-value>)', 500: "rgb(var(--color-warning-500)/<alpha-value>)",
600: 'rgb(var(--color-warning-600)/<alpha-value>)', 600: "rgb(var(--color-warning-600)/<alpha-value>)",
700: 'rgb(var(--color-warning-700)/<alpha-value>)', 700: "rgb(var(--color-warning-700)/<alpha-value>)",
800: 'rgb(var(--color-warning-800)/<alpha-value>)', 800: "rgb(var(--color-warning-800)/<alpha-value>)",
900: 'rgb(var(--color-warning-900)/<alpha-value>)', 900: "rgb(var(--color-warning-900)/<alpha-value>)",
950: 'rgb(var(--color-warning-950)/<alpha-value>)', 950: "rgb(var(--color-warning-950)/<alpha-value>)",
}, },
info: { info: {
0: 'rgb(var(--color-info-0)/<alpha-value>)', 0: "rgb(var(--color-info-0)/<alpha-value>)",
50: 'rgb(var(--color-info-50)/<alpha-value>)', 50: "rgb(var(--color-info-50)/<alpha-value>)",
100: 'rgb(var(--color-info-100)/<alpha-value>)', 100: "rgb(var(--color-info-100)/<alpha-value>)",
200: 'rgb(var(--color-info-200)/<alpha-value>)', 200: "rgb(var(--color-info-200)/<alpha-value>)",
300: 'rgb(var(--color-info-300)/<alpha-value>)', 300: "rgb(var(--color-info-300)/<alpha-value>)",
400: 'rgb(var(--color-info-400)/<alpha-value>)', 400: "rgb(var(--color-info-400)/<alpha-value>)",
500: 'rgb(var(--color-info-500)/<alpha-value>)', 500: "rgb(var(--color-info-500)/<alpha-value>)",
600: 'rgb(var(--color-info-600)/<alpha-value>)', 600: "rgb(var(--color-info-600)/<alpha-value>)",
700: 'rgb(var(--color-info-700)/<alpha-value>)', 700: "rgb(var(--color-info-700)/<alpha-value>)",
800: 'rgb(var(--color-info-800)/<alpha-value>)', 800: "rgb(var(--color-info-800)/<alpha-value>)",
900: 'rgb(var(--color-info-900)/<alpha-value>)', 900: "rgb(var(--color-info-900)/<alpha-value>)",
950: 'rgb(var(--color-info-950)/<alpha-value>)', 950: "rgb(var(--color-info-950)/<alpha-value>)",
}, },
typography: { typography: {
0: 'rgb(var(--color-typography-0)/<alpha-value>)', 0: "rgb(var(--color-typography-0)/<alpha-value>)",
50: 'rgb(var(--color-typography-50)/<alpha-value>)', 50: "rgb(var(--color-typography-50)/<alpha-value>)",
100: 'rgb(var(--color-typography-100)/<alpha-value>)', 100: "rgb(var(--color-typography-100)/<alpha-value>)",
200: 'rgb(var(--color-typography-200)/<alpha-value>)', 200: "rgb(var(--color-typography-200)/<alpha-value>)",
300: 'rgb(var(--color-typography-300)/<alpha-value>)', 300: "rgb(var(--color-typography-300)/<alpha-value>)",
400: 'rgb(var(--color-typography-400)/<alpha-value>)', 400: "rgb(var(--color-typography-400)/<alpha-value>)",
500: 'rgb(var(--color-typography-500)/<alpha-value>)', 500: "rgb(var(--color-typography-500)/<alpha-value>)",
600: 'rgb(var(--color-typography-600)/<alpha-value>)', 600: "rgb(var(--color-typography-600)/<alpha-value>)",
700: 'rgb(var(--color-typography-700)/<alpha-value>)', 700: "rgb(var(--color-typography-700)/<alpha-value>)",
800: 'rgb(var(--color-typography-800)/<alpha-value>)', 800: "rgb(var(--color-typography-800)/<alpha-value>)",
900: 'rgb(var(--color-typography-900)/<alpha-value>)', 900: "rgb(var(--color-typography-900)/<alpha-value>)",
950: 'rgb(var(--color-typography-950)/<alpha-value>)', 950: "rgb(var(--color-typography-950)/<alpha-value>)",
white: '#FFFFFF', white: "#FFFFFF",
gray: '#D4D4D4', gray: "#D4D4D4",
black: '#181718', black: "#181718",
}, },
outline: { outline: {
0: 'rgb(var(--color-outline-0)/<alpha-value>)', 0: "rgb(var(--color-outline-0)/<alpha-value>)",
50: 'rgb(var(--color-outline-50)/<alpha-value>)', 50: "rgb(var(--color-outline-50)/<alpha-value>)",
100: 'rgb(var(--color-outline-100)/<alpha-value>)', 100: "rgb(var(--color-outline-100)/<alpha-value>)",
200: 'rgb(var(--color-outline-200)/<alpha-value>)', 200: "rgb(var(--color-outline-200)/<alpha-value>)",
300: 'rgb(var(--color-outline-300)/<alpha-value>)', 300: "rgb(var(--color-outline-300)/<alpha-value>)",
400: 'rgb(var(--color-outline-400)/<alpha-value>)', 400: "rgb(var(--color-outline-400)/<alpha-value>)",
500: 'rgb(var(--color-outline-500)/<alpha-value>)', 500: "rgb(var(--color-outline-500)/<alpha-value>)",
600: 'rgb(var(--color-outline-600)/<alpha-value>)', 600: "rgb(var(--color-outline-600)/<alpha-value>)",
700: 'rgb(var(--color-outline-700)/<alpha-value>)', 700: "rgb(var(--color-outline-700)/<alpha-value>)",
800: 'rgb(var(--color-outline-800)/<alpha-value>)', 800: "rgb(var(--color-outline-800)/<alpha-value>)",
900: 'rgb(var(--color-outline-900)/<alpha-value>)', 900: "rgb(var(--color-outline-900)/<alpha-value>)",
950: 'rgb(var(--color-outline-950)/<alpha-value>)', 950: "rgb(var(--color-outline-950)/<alpha-value>)",
}, },
background: { background: {
0: 'rgb(var(--color-background-0)/<alpha-value>)', 0: "rgb(var(--color-background-0)/<alpha-value>)",
50: 'rgb(var(--color-background-50)/<alpha-value>)', 50: "rgb(var(--color-background-50)/<alpha-value>)",
100: 'rgb(var(--color-background-100)/<alpha-value>)', 100: "rgb(var(--color-background-100)/<alpha-value>)",
200: 'rgb(var(--color-background-200)/<alpha-value>)', 200: "rgb(var(--color-background-200)/<alpha-value>)",
300: 'rgb(var(--color-background-300)/<alpha-value>)', 300: "rgb(var(--color-background-300)/<alpha-value>)",
400: 'rgb(var(--color-background-400)/<alpha-value>)', 400: "rgb(var(--color-background-400)/<alpha-value>)",
500: 'rgb(var(--color-background-500)/<alpha-value>)', 500: "rgb(var(--color-background-500)/<alpha-value>)",
600: 'rgb(var(--color-background-600)/<alpha-value>)', 600: "rgb(var(--color-background-600)/<alpha-value>)",
700: 'rgb(var(--color-background-700)/<alpha-value>)', 700: "rgb(var(--color-background-700)/<alpha-value>)",
800: 'rgb(var(--color-background-800)/<alpha-value>)', 800: "rgb(var(--color-background-800)/<alpha-value>)",
900: 'rgb(var(--color-background-900)/<alpha-value>)', 900: "rgb(var(--color-background-900)/<alpha-value>)",
950: 'rgb(var(--color-background-950)/<alpha-value>)', 950: "rgb(var(--color-background-950)/<alpha-value>)",
error: 'rgb(var(--color-background-error)/<alpha-value>)', error: "rgb(var(--color-background-error)/<alpha-value>)",
warning: 'rgb(var(--color-background-warning)/<alpha-value>)', warning: "rgb(var(--color-background-warning)/<alpha-value>)",
muted: 'rgb(var(--color-background-muted)/<alpha-value>)', muted: "rgb(var(--color-background-muted)/<alpha-value>)",
success: 'rgb(var(--color-background-success)/<alpha-value>)', success: "rgb(var(--color-background-success)/<alpha-value>)",
info: 'rgb(var(--color-background-info)/<alpha-value>)', info: "rgb(var(--color-background-info)/<alpha-value>)",
light: '#FBFBFB', light: "#FBFBFB",
dark: '#181719', dark: "#181719",
}, },
indicator: { indicator: {
primary: 'rgb(var(--color-indicator-primary)/<alpha-value>)', primary: "rgb(var(--color-indicator-primary)/<alpha-value>)",
info: 'rgb(var(--color-indicator-info)/<alpha-value>)', info: "rgb(var(--color-indicator-info)/<alpha-value>)",
error: 'rgb(var(--color-indicator-error)/<alpha-value>)', error: "rgb(var(--color-indicator-error)/<alpha-value>)",
}, },
}, },
fontFamily: { fontFamily: {
heading: undefined, heading: undefined,
body: undefined, body: undefined,
mono: undefined, mono: undefined,
jakarta: ['var(--font-plus-jakarta-sans)'], jakarta: ["var(--font-plus-jakarta-sans)"],
roboto: ['var(--font-roboto)'], roboto: ["var(--font-roboto)"],
code: ['var(--font-source-code-pro)'], code: ["var(--font-source-code-pro)"],
inter: ['var(--font-inter)'], inter: ["var(--font-inter)"],
'space-mono': ['var(--font-space-mono)'], "space-mono": ["var(--font-space-mono)"],
}, },
fontWeight: { fontWeight: {
extrablack: '950', extrablack: "950",
}, },
fontSize: { fontSize: {
'2xs': '10px', "2xs": "10px",
}, },
boxShadow: { boxShadow: {
'hard-1': '-2px 2px 8px 0px rgba(38, 38, 38, 0.20)', "hard-1": "-2px 2px 8px 0px rgba(38, 38, 38, 0.20)",
'hard-2': '0px 3px 10px 0px rgba(38, 38, 38, 0.20)', "hard-2": "0px 3px 10px 0px rgba(38, 38, 38, 0.20)",
'hard-3': '2px 2px 8px 0px rgba(38, 38, 38, 0.20)', "hard-3": "2px 2px 8px 0px rgba(38, 38, 38, 0.20)",
'hard-4': '0px -3px 10px 0px rgba(38, 38, 38, 0.20)', "hard-4": "0px -3px 10px 0px rgba(38, 38, 38, 0.20)",
'hard-5': '0px 2px 10px 0px rgba(38, 38, 38, 0.10)', "hard-5": "0px 2px 10px 0px rgba(38, 38, 38, 0.10)",
'soft-1': '0px 0px 10px rgba(38, 38, 38, 0.1)', "soft-1": "0px 0px 10px rgba(38, 38, 38, 0.1)",
'soft-2': '0px 0px 20px rgba(38, 38, 38, 0.2)', "soft-2": "0px 0px 20px rgba(38, 38, 38, 0.2)",
'soft-3': '0px 0px 30px rgba(38, 38, 38, 0.1)', "soft-3": "0px 0px 30px rgba(38, 38, 38, 0.1)",
'soft-4': '0px 0px 40px rgba(38, 38, 38, 0.1)', "soft-4": "0px 0px 40px rgba(38, 38, 38, 0.1)",
}, },
}, },
}, },

Loading…
Cancel
Save