aboutsummaryrefslogtreecommitdiffstats
path: root/apps/mobile/tailwind.config.js
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2025-08-26 15:47:05 +0300
committerGitHub <noreply@github.com>2025-08-26 13:47:05 +0100
commited86f7ef012fb558fe8a8974e1e162ce75cbfd15 (patch)
treea3470b0e1a01aede90b75bc61eeba2545e51fe83 /apps/mobile/tailwind.config.js
parentec56ea33b5e37d02e87e480da305038a5ce7de49 (diff)
downloadkarakeep-ed86f7ef012fb558fe8a8974e1e162ce75cbfd15.tar.zst
feat(mobile): Retheme the mobile app (#1872)
* Add nativewindui * migrate to nativewindui text * Replace buttons with nativewindui buttons * Use nativewindui search input * fix the divider color * More changes * fix manage tag icon * fix styling of bookmark card * fix ios compilation * fix search clear * fix tag pill border color * Store theme setting in app settings * fix setting color appearance * fix coloring of search input * fix following system theme * add a save button to info * fix the grey colors on android * fix icon active tint color * drop the use of TextField
Diffstat (limited to 'apps/mobile/tailwind.config.js')
-rw-r--r--apps/mobile/tailwind.config.js66
1 files changed, 66 insertions, 0 deletions
diff --git a/apps/mobile/tailwind.config.js b/apps/mobile/tailwind.config.js
new file mode 100644
index 00000000..74a9f30a
--- /dev/null
+++ b/apps/mobile/tailwind.config.js
@@ -0,0 +1,66 @@
+const { hairlineWidth, platformSelect } = require("nativewind/theme");
+
+/** @type {import('tailwindcss').Config} */
+module.exports = {
+ // NOTE: Update this to include the paths to all of your component files.
+ content: ["./app/**/*.{js,jsx,ts,tsx}", "./components/**/*.{js,jsx,ts,tsx}"],
+ presets: [require("nativewind/preset")],
+ theme: {
+ extend: {
+ colors: {
+ border: withOpacity("border"),
+ input: withOpacity("input"),
+ ring: withOpacity("ring"),
+ background: withOpacity("background"),
+ foreground: withOpacity("foreground"),
+ primary: {
+ DEFAULT: withOpacity("primary"),
+ foreground: withOpacity("primary-foreground"),
+ },
+ secondary: {
+ DEFAULT: withOpacity("secondary"),
+ foreground: withOpacity("secondary-foreground"),
+ },
+ destructive: {
+ DEFAULT: withOpacity("destructive"),
+ foreground: withOpacity("destructive-foreground"),
+ },
+ muted: {
+ DEFAULT: withOpacity("muted"),
+ foreground: withOpacity("muted-foreground"),
+ },
+ accent: {
+ DEFAULT: withOpacity("accent"),
+ foreground: withOpacity("accent-foreground"),
+ },
+ popover: {
+ DEFAULT: withOpacity("popover"),
+ foreground: withOpacity("popover-foreground"),
+ },
+ card: {
+ DEFAULT: withOpacity("card"),
+ foreground: withOpacity("card-foreground"),
+ },
+ },
+ borderWidth: {
+ hairline: hairlineWidth(),
+ },
+ },
+ },
+ plugins: [],
+};
+
+function withOpacity(variableName) {
+ return ({ opacityValue }) => {
+ if (opacityValue !== undefined) {
+ return platformSelect({
+ ios: `rgb(var(--${variableName}) / ${opacityValue})`,
+ android: `rgb(var(--android-${variableName}) / ${opacityValue})`,
+ });
+ }
+ return platformSelect({
+ ios: `rgb(var(--${variableName}))`,
+ android: `rgb(var(--android-${variableName}))`,
+ });
+ };
+}