<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Raymond</title>
    <description>The latest articles on DEV Community by Raymond (@ubaton).</description>
    <link>https://dev.to/ubaton</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1191442%2F2df1d183-8976-43d4-8ff4-4a5bdbd1a4ba.jpeg</url>
      <title>DEV Community: Raymond</title>
      <link>https://dev.to/ubaton</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ubaton"/>
    <language>en</language>
    <item>
      <title>Setting Up Tailwind in React Native SDK 51 with NativeWind</title>
      <dc:creator>Raymond</dc:creator>
      <pubDate>Mon, 04 Nov 2024 16:27:23 +0000</pubDate>
      <link>https://dev.to/ubaton/setting-up-tailwind-in-react-native-sdk-51-with-nativewind-1ofi</link>
      <guid>https://dev.to/ubaton/setting-up-tailwind-in-react-native-sdk-51-with-nativewind-1ofi</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;This guide provides a streamlined setup to integrate Tailwind CSS in your new React Native SDK 51 project. Follow each step closely, and let’s get your project styled in no time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Folder Structure
&lt;/h2&gt;

&lt;p&gt;Begin by reviewing your project’s folder structure. In the "app" folder, you’ll need to add some new files for Tailwind to work properly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foxc4b3exnoitb6tiisa3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foxc4b3exnoitb6tiisa3.png" alt="Folder Structure" width="345" height="876"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Create a Global CSS File
&lt;/h2&gt;

&lt;p&gt;Create a &lt;code&gt;global.css&lt;/code&gt; file inside the "app" folder and add any global styling you may need here.&lt;/p&gt;

&lt;p&gt;css&lt;br&gt;
/* app/global.css */&lt;br&gt;
&lt;a class="mentioned-user" href="https://dev.to/tailwind"&gt;@tailwind&lt;/a&gt; base;&lt;br&gt;
&lt;a class="mentioned-user" href="https://dev.to/tailwind"&gt;@tailwind&lt;/a&gt; components;&lt;br&gt;
&lt;a class="mentioned-user" href="https://dev.to/tailwind"&gt;@tailwind&lt;/a&gt; utilities;`` &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fezf4llpyjnh87xfpq4kd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fezf4llpyjnh87xfpq4kd.png" alt="global.css example" width="618" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Configure the Main Index Component
&lt;/h2&gt;

&lt;p&gt;In &lt;code&gt;/app/(tabs)/index.tsx&lt;/code&gt;, add the following base code:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;import React from 'react';&lt;br&gt;
import { Text, View } from 'react-native';&lt;br&gt;
export default function Index() {&lt;br&gt;
  return (&lt;br&gt;
    &amp;lt;View className="flex-1 items-center justify-center bg-white"&amp;gt;&lt;br&gt;
      &amp;lt;Text className="text-lg font-bold"&amp;gt;Hello, Tailwind!&amp;lt;/Text&amp;gt;&lt;br&gt;
    &amp;lt;/View&amp;gt;&lt;br&gt;
  );&lt;br&gt;
}&lt;/code&gt; &lt;/p&gt;

&lt;p&gt;This file will help you set up Tailwind classes, but initially, you may encounter an error for the &lt;code&gt;className&lt;/code&gt; attribute.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Fix &lt;code&gt;className&lt;/code&gt; Error with NativeWind Types
&lt;/h2&gt;

&lt;p&gt;To resolve the &lt;code&gt;className&lt;/code&gt; error, create a &lt;code&gt;nativewind-env.d.ts&lt;/code&gt; file with a reference to NativeWind types:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/// &amp;lt;reference types="nativewind/types" /&amp;gt;&lt;/code&gt; &lt;/p&gt;

&lt;p&gt;This extends React Native types to support Tailwind.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmjon0ds3d49dbkp4h8yr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmjon0ds3d49dbkp4h8yr.png" alt="nativewind-env.d.ts example" width="800" height="312"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Update &lt;code&gt;_layout.tsx&lt;/code&gt; for Global CSS
&lt;/h2&gt;

&lt;p&gt;In &lt;code&gt;/app/_layout.tsx&lt;/code&gt;, add the following code to import your global CSS:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;import { Slot } from "expo-router";&lt;br&gt;
import "../app/global.css";&lt;br&gt;
export default Slot;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Ensure that this is properly set up to apply global styling throughout your project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F12465u0w5m42z9emkn3d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F12465u0w5m42z9emkn3d.png" alt="Layout Code" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Configure &lt;code&gt;tailwind.config.js&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Replace the content of &lt;code&gt;tailwind.config.js&lt;/code&gt; with the following code, ensuring that the paths to all component files are included:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/** @type {import('tailwindcss').Config} */&lt;br&gt;
module.exports = {&lt;br&gt;
  content: ["./app/**/*.{js,jsx,ts,tsx}"],&lt;br&gt;
  presets: [require("nativewind/preset")],&lt;br&gt;
  theme: {&lt;br&gt;
    extend: {},&lt;br&gt;
  },&lt;br&gt;
  plugins: [],&lt;br&gt;
};&lt;/code&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv444hbdusnnrkz97w836.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv444hbdusnnrkz97w836.png" alt="Tailwind Config" width="800" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Configure &lt;code&gt;babel.config.js&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Add the necessary configurations for NativeWind in &lt;code&gt;babel.config.js&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;module.exports = function (api) {&lt;br&gt;
  api.cache(true);&lt;br&gt;
  return {&lt;br&gt;
    presets: [&lt;br&gt;
      ["babel-preset-expo", { jsxImportSource: "nativewind" }],&lt;br&gt;
      "nativewind/babel",&lt;br&gt;
    ],&lt;br&gt;
  };&lt;br&gt;
};&lt;/code&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0rk9bi6j4p0c949v81jh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0rk9bi6j4p0c949v81jh.png" alt="Babel Config" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: Configure &lt;code&gt;metro.config.js&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Finally, if you don’t have a &lt;code&gt;metro.config.js&lt;/code&gt; file, create one and add the following code:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const { getDefaultConfig } = require("expo/metro-config");&lt;br&gt;
const { withNativeWind } = require("nativewind/metro");&lt;br&gt;
const config = getDefaultConfig(__dirname);&lt;br&gt;
module.exports = withNativeWind(config, { input: "./app/global.css" });&lt;/code&gt; &lt;/p&gt;

&lt;p&gt;This ensures Tailwind CSS compatibility with Expo and NativeWind.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3rqabgcs6iyl3gnodk73.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3rqabgcs6iyl3gnodk73.png" alt="Metro Config" width="800" height="299"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;You’re all set! Tailwind CSS is now integrated into your React Native SDK 51 project. Happy coding, and enjoy building with Tailwind's powerful styling capabilities!&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>react</category>
      <category>nativewind</category>
      <category>javascript</category>
    </item>
    <item>
      <title>QR Code Generator with React and Firebase Authentication</title>
      <dc:creator>Raymond</dc:creator>
      <pubDate>Wed, 10 Jan 2024 12:02:25 +0000</pubDate>
      <link>https://dev.to/ubaton/qr-code-generator-with-react-and-firebase-authentication-24cj</link>
      <guid>https://dev.to/ubaton/qr-code-generator-with-react-and-firebase-authentication-24cj</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ku9f8lnaou50yxmqnw7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ku9f8lnaou50yxmqnw7.png" alt="Image description" width="160" height="144"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fklr9b1kv49gs4yon5dl6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fklr9b1kv49gs4yon5dl6.png" alt="Image description" width="800" height="424"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8djlthdaitu3e15ciiyl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8djlthdaitu3e15ciiyl.png" alt="Image description" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://qrcode-generator-cmg.netlify.app/" rel="noopener noreferrer"&gt;QR Code-Generator&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Description:&lt;br&gt;
This QR Code Generator project, built with React, offers a feature-rich experience for users to create customized QR codes. The application includes functionalities such as image upload, color selection, and various QR code styles. Additionally, it integrates with Firebase for user authentication, allowing users to log in, sign up, and personalize their experience.&lt;/p&gt;

&lt;p&gt;Key Features:&lt;/p&gt;

&lt;p&gt;User Authentication: Utilizing Firebase authentication, users can log in and sign up securely. The project displays the user's profile picture if available.&lt;/p&gt;

&lt;p&gt;Dynamic Styling: The application provides users with a selection of QR code styles, allowing them to choose from different visual representations. The styles are dynamically applied to the generated QR codes.&lt;/p&gt;

&lt;p&gt;Dark Mode Support: Users can toggle between light and dark modes for a personalized viewing experience.&lt;/p&gt;

&lt;p&gt;Image Upload and Color Selection: Users can upload images to embed in QR codes and choose colors for customization. This adds a personal touch to the generated QR codes.&lt;/p&gt;

&lt;p&gt;QR Code Generation: The core functionality of the project involves generating QR codes based on user inputs, including URL or text, chosen style, and optional image and color.&lt;/p&gt;

&lt;p&gt;Cookie Consent: The project incorporates a cookie consent feature, providing users with the option to accept or reject cookies. This enhances transparency and user control over their data.&lt;/p&gt;

&lt;p&gt;Buy Me Coffee Option: A "Buy Me Coffee" button is included, allowing users to support the developer through a PayPal donation link.&lt;/p&gt;

&lt;p&gt;Responsive Design: The project is designed to be responsive, ensuring a seamless experience across different devices.&lt;/p&gt;

&lt;p&gt;Instructions:&lt;/p&gt;

&lt;p&gt;Login and Signup: Users can log in or sign up to personalize their experience and access additional features.&lt;/p&gt;

&lt;p&gt;QR Code Customization: Users can customize QR codes by uploading images, selecting colors, and choosing from various styles.&lt;/p&gt;

&lt;p&gt;Dark Mode Toggle: The application supports both light and dark modes, providing users with a visually comfortable environment.&lt;/p&gt;

&lt;p&gt;Cookie Consent: Users are prompted to accept or reject cookies, enhancing transparency and compliance with privacy standards.&lt;/p&gt;

&lt;p&gt;Support the Developer: Users have the option to support the developer by making a donation through the "Buy Me Coffee" button.&lt;/p&gt;

&lt;p&gt;Explore the features of this QR Code Generator to create unique and visually appealing QR codes for your needs.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Business Card Generator!</title>
      <dc:creator>Raymond</dc:creator>
      <pubDate>Mon, 13 Nov 2023 14:47:19 +0000</pubDate>
      <link>https://dev.to/ubaton/business-card-generator-48g0</link>
      <guid>https://dev.to/ubaton/business-card-generator-48g0</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fms0qxnghv36xib3wwnyc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fms0qxnghv36xib3wwnyc.png" alt="Image description" width="800" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hey DEV Community 👋,&lt;/p&gt;

&lt;p&gt;Are you tired of the same old, uninspiring business card designs? Do you want to stand out in the professional crowd with a card that truly represents your brand? Look no further! 🚀&lt;/p&gt;

&lt;p&gt;🌟 Introducing Creative Minds Graphics Pty Ltd's Business Card Generator!&lt;/p&gt;

&lt;p&gt;Unleash your creativity and leave a lasting impression with our cutting-edge Business Card Generator. Here's why it's a game-changer:&lt;/p&gt;

&lt;p&gt;✨ Dual-Sided Magic: Design both the front and back of your card, showcasing your uniqueness.&lt;/p&gt;

&lt;p&gt;✨ Diverse Templates: Choose from a plethora of professionally designed templates to match your style.&lt;/p&gt;

&lt;p&gt;✨ Customization at Your Fingertips: Personalize colors, fonts, logos, and more for a truly distinctive look.&lt;/p&gt;

&lt;p&gt;✨ Easy Editing: Our user-friendly interface ensures effortless card creation - no design skills required!&lt;/p&gt;

&lt;p&gt;✨ High-Quality Printing: We guarantee your cards will look as good in print as they do on the screen.&lt;/p&gt;

&lt;p&gt;🚀 How It Works:&lt;/p&gt;

&lt;p&gt;Choose Your Template: Select a design that resonates with your brand.&lt;br&gt;
Customize: Add your company logo, and &lt;/p&gt;

&lt;p&gt;contact info, and sprinkle a bit of your personality.&lt;br&gt;
Preview: See your creation come to life with our real-time preview feature.&lt;br&gt;
Print or Share: Print at your convenience or share digitally with ease.&lt;br&gt;
💼 Why settle for ordinary? Impress clients, colleagues, and connections with your standout business cards!&lt;/p&gt;

&lt;p&gt;Ready to elevate your professional image? Join the future of business card creation now! 🌐 &lt;a href="https://businesscardgenerator.vercel.app/" rel="noopener noreferrer"&gt;Business Crad Generator&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎉 Don't miss out on making a lasting impression. Try Creative Minds Graphics Pty Ltd's Business Card Generator today! 🎉&lt;/p&gt;

&lt;p&gt;Feel free to drop your thoughts, questions, or card designs in the comments below. Let's revolutionize the way we network and leave a memorable mark together! 🔥&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>opensource</category>
      <category>nextjs</category>
      <category>developer</category>
    </item>
  </channel>
</rss>
