Skip to content

Instantly share code, notes, and snippets.

@burakorkmez
Last active June 16, 2025 20:07
Show Gist options
  • Save burakorkmez/9cab7b50e5ce0a3819e9d193e175d2ba to your computer and use it in GitHub Desktop.
Save burakorkmez/9cab7b50e5ce0a3819e9d193e175d2ba to your computer and use it in GitHub Desktop.
React Native Bookworm COPY-PASTE List
// FOREST
const COLORS = {
primary: "#4CAF50",
textPrimary: "#2e5a2e",
textSecondary: "#688f68",
textDark: "#1b361b",
placeholderText: "#767676",
background: "#e8f5e9",
cardBackground: "#f1f8f2",
inputBackground: "#f4faf5",
border: "#c8e6c9",
white: "#ffffff",
black: "#000000",
};
// RETRO
/*
const COLORS = {
primary: "#e17055",
textPrimary: "#784e2d",
textSecondary: "#a58e7c",
textDark: "#50372a",
placeholderText: "#767676",
background: "#ede1d1",
cardBackground: "#faf5eb",
inputBackground: "#f7f2ea",
border: "#e2d6c1",
white: "#ffffff",
black: "#000000",
};
*/
// OCEAN
/*
const COLORS = {
primary: "#1976D2",
textPrimary: "#1a4971",
textSecondary: "#6d93b8",
textDark: "#0d2b43",
placeholderText: "#767676",
background: "#e3f2fd",
cardBackground: "#f5f9ff",
inputBackground: "#f0f8ff",
border: "#bbdefb",
white: "#ffffff",
black: "#000000",
};
*/
// BLOSSOM
/*
const COLORS = {
primary: "#EC407A",
textPrimary: "#7d2150",
textSecondary: "#b06a8f",
textDark: "#5a1836",
placeholderText: "#767676",
background: "#fce4ec",
cardBackground: "#fff5f8",
inputBackground: "#fef8fa",
border: "#f8bbd0",
white: "#ffffff",
black: "#000000",
};
*/
export default COLORS;
// styles/create.styles.js
import { StyleSheet } from "react-native";
import COLORS from "../../constants/colors";
const styles = StyleSheet.create({
container: {
flexGrow: 1,
backgroundColor: COLORS.background,
padding: 16,
},
scrollViewStyle: {
flex: 1,
backgroundColor: COLORS.background,
},
card: {
backgroundColor: COLORS.cardBackground,
borderRadius: 16,
padding: 20,
marginVertical: 16,
shadowColor: COLORS.black,
shadowOffset: { width: 0, height: 2 },
shadowOpacity: 0.1,
shadowRadius: 8,
elevation: 3,
borderWidth: 1,
borderColor: COLORS.border,
},
header: {
alignItems: "center",
marginBottom: 24,
},
title: {
fontSize: 24,
fontWeight: "700",
color: COLORS.textPrimary,
marginBottom: 8,
},
subtitle: {
fontSize: 14,
color: COLORS.textSecondary,
textAlign: "center",
},
form: {
marginBottom: 16,
},
formGroup: {
marginBottom: 20,
},
label: {
fontSize: 14,
marginBottom: 8,
color: COLORS.textPrimary,
fontWeight: "500",
},
inputContainer: {
flexDirection: "row",
alignItems: "center",
backgroundColor: COLORS.inputBackground,
borderRadius: 12,
borderWidth: 1,
borderColor: COLORS.border,
paddingHorizontal: 12,
},
inputIcon: {
marginRight: 10,
},
input: {
flex: 1,
height: 48,
color: COLORS.textDark,
},
textArea: {
backgroundColor: COLORS.inputBackground,
borderRadius: 12,
borderWidth: 1,
borderColor: COLORS.border,
padding: 12,
height: 100,
color: COLORS.textDark,
},
ratingContainer: {
flexDirection: "row",
justifyContent: "space-around",
alignItems: "center",
backgroundColor: COLORS.inputBackground,
borderRadius: 12,
borderWidth: 1,
borderColor: COLORS.border,
padding: 8,
},
starButton: {
padding: 8,
},
imagePicker: {
width: "100%",
height: 200,
backgroundColor: COLORS.inputBackground,
borderRadius: 12,
borderWidth: 1,
borderColor: COLORS.border,
overflow: "hidden",
},
previewImage: {
width: "100%",
height: "100%",
},
placeholderContainer: {
width: "100%",
height: "100%",
justifyContent: "center",
alignItems: "center",
},
placeholderText: {
color: COLORS.textSecondary,
marginTop: 8,
},
button: {
backgroundColor: COLORS.primary,
borderRadius: 12,
height: 50,
flexDirection: "row",
justifyContent: "center",
alignItems: "center",
marginTop: 16,
shadowColor: COLORS.black,
shadowOffset: { width: 0, height: 2 },
shadowOpacity: 0.1,
shadowRadius: 4,
elevation: 2,
},
buttonText: {
color: COLORS.white,
fontSize: 16,
fontWeight: "600",
},
buttonIcon: {
marginRight: 8,
},
});
export default styles;
// styles/home.styles.js
import { StyleSheet } from "react-native";
import COLORS from "../../constants/colors";
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: COLORS.background,
},
loadingContainer: {
flex: 1,
justifyContent: "center",
alignItems: "center",
backgroundColor: COLORS.background,
},
listContainer: {
padding: 16,
paddingBottom: 80,
},
header: {
marginBottom: 20,
alignItems: "center",
},
headerTitle: {
fontSize: 24,
fontFamily: "JetBrainsMono-Medium",
letterSpacing: 0.5,
color: COLORS.primary,
marginBottom: 8,
},
headerSubtitle: {
fontSize: 14,
color: COLORS.textSecondary,
textAlign: "center",
},
bookCard: {
backgroundColor: COLORS.cardBackground,
borderRadius: 16,
marginBottom: 20,
padding: 16,
shadowColor: COLORS.black,
shadowOffset: { width: 0, height: 2 },
shadowOpacity: 0.1,
shadowRadius: 8,
elevation: 3,
borderWidth: 1,
borderColor: COLORS.border,
},
bookHeader: {
flexDirection: "row",
justifyContent: "space-between",
alignItems: "center",
marginBottom: 12,
},
userInfo: {
flexDirection: "row",
alignItems: "center",
},
avatar: {
width: 36,
height: 36,
borderRadius: 18,
marginRight: 10,
},
username: {
fontSize: 15,
fontWeight: "600",
color: COLORS.textPrimary,
},
bookImageContainer: {
width: "100%",
height: 200,
borderRadius: 12,
overflow: "hidden",
marginBottom: 12,
backgroundColor: COLORS.border,
},
bookImage: {
width: "100%",
height: "100%",
},
bookDetails: {
padding: 4,
},
bookTitle: {
fontSize: 18,
fontWeight: "700",
color: COLORS.textPrimary,
marginBottom: 6,
},
ratingContainer: {
flexDirection: "row",
marginBottom: 8,
},
caption: {
fontSize: 14,
color: COLORS.textDark,
marginBottom: 8,
lineHeight: 20,
},
date: {
fontSize: 12,
color: COLORS.textSecondary,
},
emptyContainer: {
alignItems: "center",
justifyContent: "center",
padding: 40,
marginTop: 40,
},
emptyText: {
fontSize: 18,
fontWeight: "600",
color: COLORS.textPrimary,
marginTop: 16,
marginBottom: 8,
},
emptySubtext: {
fontSize: 14,
color: COLORS.textSecondary,
textAlign: "center",
},
footerLoader: {
marginVertical: 20,
},
});
export default styles;
// styles/login.styles.js
import { StyleSheet, Dimensions } from "react-native";
import COLORS from "../../constants/colors";
const { width } = Dimensions.get("window");
const styles = StyleSheet.create({
container: {
flexGrow: 1,
backgroundColor: COLORS.background,
padding: 20,
justifyContent: "center",
},
scrollViewStyle: {
flex: 1,
backgroundColor: COLORS.background,
},
topIllustration: {
alignItems: "center",
width: "100%",
},
illustrationImage: {
width: width * 0.75,
height: width * 0.75,
},
card: {
backgroundColor: COLORS.cardBackground,
borderRadius: 16,
padding: 24,
shadowColor: COLORS.black,
shadowOffset: { width: 0, height: 2 },
shadowOpacity: 0.1,
shadowRadius: 8,
elevation: 4,
borderWidth: 2,
borderColor: COLORS.border,
marginTop: -24,
},
header: {
alignItems: "center",
marginBottom: 24,
},
title: {
fontSize: 32,
fontWeight: "700",
color: COLORS.textPrimary,
marginBottom: 8,
},
subtitle: {
fontSize: 16,
color: COLORS.textSecondary,
textAlign: "center",
},
formContainer: {
marginBottom: 16,
},
inputGroup: {
marginBottom: 20,
},
label: {
fontSize: 14,
marginBottom: 8,
color: COLORS.textPrimary,
fontWeight: "500",
},
inputContainer: {
flexDirection: "row",
alignItems: "center",
backgroundColor: COLORS.inputBackground,
borderRadius: 12,
borderWidth: 1,
borderColor: COLORS.border,
paddingHorizontal: 12,
},
inputIcon: {
marginRight: 10,
},
input: {
flex: 1,
height: 48,
color: COLORS.textDark,
},
eyeIcon: {
padding: 8,
},
button: {
backgroundColor: COLORS.primary,
borderRadius: 12,
height: 50,
justifyContent: "center",
alignItems: "center",
marginTop: 16,
shadowColor: COLORS.black,
shadowOffset: { width: 0, height: 2 },
shadowOpacity: 0.1,
shadowRadius: 4,
elevation: 2,
},
buttonText: {
color: COLORS.white,
fontSize: 16,
fontWeight: "600",
},
footer: {
flexDirection: "row",
justifyContent: "center",
marginTop: 24,
},
footerText: {
color: COLORS.textSecondary,
marginRight: 5,
},
link: {
color: COLORS.primary,
fontWeight: "600",
},
});
export default styles;
// styles/profile.styles.js
import { StyleSheet } from "react-native";
import COLORS from "../../constants/colors";
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: COLORS.background,
padding: 16,
paddingBottom: 0,
},
loadingContainer: {
flex: 1,
justifyContent: "center",
alignItems: "center",
backgroundColor: COLORS.background,
},
profileHeader: {
flexDirection: "row",
alignItems: "center",
backgroundColor: COLORS.cardBackground,
borderRadius: 16,
padding: 16,
marginBottom: 16,
shadowColor: COLORS.black,
shadowOffset: { width: 0, height: 2 },
shadowOpacity: 0.1,
shadowRadius: 8,
elevation: 3,
borderWidth: 1,
borderColor: COLORS.border,
},
profileImage: {
width: 80,
height: 80,
borderRadius: 40,
marginRight: 16,
},
profileInfo: {
flex: 1,
},
username: {
fontSize: 20,
fontWeight: "700",
color: COLORS.textPrimary,
marginBottom: 4,
},
email: {
fontSize: 14,
color: COLORS.textSecondary,
marginBottom: 4,
},
memberSince: {
fontSize: 12,
color: COLORS.textSecondary,
},
logoutButton: {
backgroundColor: COLORS.primary,
borderRadius: 12,
padding: 12,
flexDirection: "row",
alignItems: "center",
justifyContent: "center",
marginBottom: 24,
shadowColor: COLORS.black,
shadowOffset: { width: 0, height: 2 },
shadowOpacity: 0.1,
shadowRadius: 4,
elevation: 2,
},
logoutText: {
color: COLORS.white,
fontWeight: "600",
marginLeft: 8,
},
booksHeader: {
flexDirection: "row",
justifyContent: "space-between",
alignItems: "center",
marginBottom: 16,
},
booksTitle: {
fontSize: 18,
fontWeight: "700",
color: COLORS.textPrimary,
},
booksCount: {
fontSize: 14,
color: COLORS.textSecondary,
},
booksList: {
paddingBottom: 20,
},
bookItem: {
flexDirection: "row",
backgroundColor: COLORS.cardBackground,
borderRadius: 12,
padding: 12,
marginBottom: 12,
shadowColor: COLORS.black,
shadowOffset: { width: 0, height: 1 },
shadowOpacity: 0.1,
shadowRadius: 4,
elevation: 2,
borderWidth: 1,
borderColor: COLORS.border,
},
bookImage: {
width: 70,
height: 100,
borderRadius: 8,
marginRight: 12,
},
bookInfo: {
flex: 1,
justifyContent: "space-between",
},
bookTitle: {
fontSize: 16,
fontWeight: "600",
color: COLORS.textPrimary,
marginBottom: 4,
},
ratingContainer: {
flexDirection: "row",
marginBottom: 4,
},
bookCaption: {
fontSize: 14,
color: COLORS.textDark,
marginBottom: 4,
flex: 1,
},
bookDate: {
fontSize: 12,
color: COLORS.textSecondary,
},
deleteButton: {
padding: 8,
justifyContent: "center",
},
emptyContainer: {
alignItems: "center",
justifyContent: "center",
padding: 40,
marginTop: 20,
},
emptyText: {
fontSize: 16,
fontWeight: "600",
color: COLORS.textPrimary,
marginTop: 16,
marginBottom: 20,
textAlign: "center",
},
addButton: {
backgroundColor: COLORS.primary,
borderRadius: 12,
paddingVertical: 12,
paddingHorizontal: 20,
shadowColor: COLORS.black,
shadowOffset: { width: 0, height: 2 },
shadowOpacity: 0.1,
shadowRadius: 4,
elevation: 2,
},
addButtonText: {
color: COLORS.white,
fontWeight: "600",
fontSize: 14,
},
});
export default styles;
// styles/signup.styles.js
import { StyleSheet } from "react-native";
import COLORS from "../../constants/colors";
const styles = StyleSheet.create({
container: {
flexGrow: 1,
backgroundColor: COLORS.background,
padding: 20,
justifyContent: "center",
},
card: {
backgroundColor: COLORS.cardBackground,
borderRadius: 16,
padding: 24,
shadowColor: COLORS.black,
shadowOffset: { width: 0, height: 2 },
shadowOpacity: 0.1,
shadowRadius: 8,
elevation: 4,
borderWidth: 2,
borderColor: COLORS.border,
},
header: {
alignItems: "center",
marginBottom: 32,
},
title: {
fontSize: 32,
fontWeight: "700",
fontFamily: "JetBrainsMono-Medium",
color: COLORS.primary,
marginBottom: 8,
},
subtitle: {
fontSize: 16,
color: COLORS.textSecondary,
textAlign: "center",
},
formContainer: { marginBottom: 16 },
inputGroup: { marginBottom: 20 },
label: {
fontSize: 14,
marginBottom: 8,
color: COLORS.textPrimary,
fontWeight: "500",
},
inputContainer: {
flexDirection: "row",
alignItems: "center",
backgroundColor: COLORS.inputBackground,
borderRadius: 12,
borderWidth: 1,
borderColor: COLORS.border,
paddingHorizontal: 12,
},
inputIcon: { marginRight: 10 },
input: {
flex: 1,
height: 48,
color: COLORS.textDark,
},
eyeIcon: { padding: 8 },
button: {
backgroundColor: COLORS.primary,
borderRadius: 12,
height: 50,
justifyContent: "center",
alignItems: "center",
marginTop: 16,
shadowColor: COLORS.black,
shadowOffset: { width: 0, height: 2 },
shadowOpacity: 0.1,
shadowRadius: 4,
elevation: 2,
},
buttonText: {
color: COLORS.white,
fontSize: 16,
fontWeight: "600",
},
footer: {
flexDirection: "row",
justifyContent: "center",
marginTop: 24,
},
footerText: {
color: COLORS.textSecondary,
marginRight: 5,
},
link: {
color: COLORS.primary,
fontWeight: "600",
},
});
export default styles;
@Naresh3102
Copy link

Thanks Bro, the tutorial cool, i appreciate you for putting such great tutorials, i have one challenge on the bookRoute Screenshot 2025-05-01 161931 Screenshot 2025-05-01 161948 Screenshot 2025-05-01 162022

you have a space before " ..". Remove the space then it will work

@2nex
Copy link

2nex commented May 5, 2025

@Naresh3102 Thank bro, i closed the space and it worked.

@Ankit-Dwivedi-code
Copy link

Thanks bro for this amazing content!

@nyyscal
Copy link

nyyscal commented May 8, 2025

Please show us how to make APK file and post it in playstore. We need full guidance,

@kingwisdom
Copy link

Thank you

@HCSButcher
Copy link

i really love how you teach

@Chinokoo
Copy link

Thanks bro for such amazing content, i appreciate

@ATINANG483
Copy link

Merci beaucoup pour cette vidéo

@burakorkmez
Copy link
Author

burakorkmez commented May 19, 2025

Extremely happy to see everyone liked the project & the tutorial ✨ If you'd like to support and unlock the full source code check it out here: https://buy.polar.sh/polar_cl_rKSaUrOc4LNH8uRSCP7ypgOAJrwkNyFYWSGu11K7grq

Thank you ❤️

@tchasinga
Copy link

thanks bro

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment