search results:

    License Free hosting Learn Playground Services Community
    • + D
    • Light
    • Dark
    • System
    logo Tailwind Elements
    • Getting started
      • Quick start
      • Tutorials
      • Optimization
      • Dark mode
      • Theming
      • Changelog
      • Contribute
    • Integrations
      • Angular
      • Django
      • Express
      • Laravel
      • Next
      • Nuxt
      • React
      • Remix
      • Solid
      • Svelte
      • Vue
    • Content & styles
      • Animations
      • Colors
      • Dividers
      • Figures
      • Headings
      • Hover effects
      • Icons
      • Images
      • Mask
      • Shadows
      • Typography
    • Navigation
      • Breadcrumbs
      • Footer
      • Headers
      • Mega menu
      • Navbar
      • Offcanvas
      • Pagination
      • Pills
      • Scrollspy
      • Sidenav
      • Tabs
    • Components
      • Accordion
      • Alerts
      • Avatar
      • Badges
      • Button group
      • Buttons
      • Cards
      • Carousel
      • Chips
      • Collapse
      • Dropdown
      • Gallery
      • Jumbotron
      • Link
      • List group
      • Modal
      • Notifications
      • Paragraphs
      • Placeholders
      • Popover
      • Progress
      • Rating
      • Scroll back to top button
      • Social buttons
      • Spinners
      • Stepper
      • Testimonials
      • Timeline
      • Toast
      • Tooltip
      • Video
      • Video carousel
    • Forms
      • Checkbox
      • Datepicker
      • File input
      • Form templates
      • Input Group
      • Inputs
      • Login form
      • Radio
      • Range
      • Registration form
      • Search
      • Select
      • Switch
      • Textarea
      • Timepicker
    • Data
      • Charts
      • Tables
    • Methods
      • Ripple
    • Design Blocks
      • Banners
      • Contact
      • Content
      • CTA
      • FAQ
      • Features
      • Headers
      • Hero / Intro sections
      • Logo clouds
      • Mega menu
      • News
      • Newsletter
      • Pricing
      • Projects
      • Stats
      • Team
      • Testimonials
    • Coming Soon
      • Angular
      • Builder
      • React
      • Templates
      • Vue
    • ResourcesNew
      • YouTube Channel
      • Private FB Group
      • Newsletter
      • UI Design course New

    Tailwind Elements React integration

    This article shows you how to integrate React application with Tailwind Elements. Free download, open source license.


    Prerequisites

    Before starting the project make sure to install the following utilities:

    • Node LTS (14.x.x or higher recommended)
    • Code editor. We recommend VSCode

    React Tailwind Elements:
    Currently we are working on a standalone React version of Tailwind Elements. If you want to know when it is going to be released, sign in in our waiting list available here.


    Creating a new React application

    Let's create a fresh React application so that we can go through all the steps together. We are going to do this through Vite - very popular and extremly light module bundler.

    Step 1

    Create new project

    • Terminal
            
                
            npm create vite@latest my-project -- --template react
            cd my-project
            
            
        

    Installing and configuring Tailwind CSS and Tailwind Elements

    Step 1

    Install Tailwind CSS

    • Terminal
            
                
            npm install -D tailwindcss postcss autoprefixer
            npx tailwindcss init -p
            
            
        

    Step 2

    Add the paths to all of your template files in your tailwind.config.cjs file.

    • tailwind.config.cjs
            
                
            /** @type {import('tailwindcss').Config} */
            module.exports = {
            content: [
                "./index.html",
                "./src/**/*.{js,ts,jsx,tsx}",
                "./node_modules/tw-elements/dist/js/**/*.js"
            ],
            theme: {
                extend: {},
            },
            darkMode: "class",
            plugins: [require("tw-elements/dist/plugin.cjs")]
            }
            
            
        

    Step 3

    Add the @tailwind directives for each of Tailwind’s layers to your ./src/index.css file.

    • index.css
            
                
            @tailwind base;
            @tailwind components;
            @tailwind utilities;
            
            
        

    Step 4

    Attach the Roboto font in index.html.

    • index.html
            
                
        <link
          href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,900&display=swap"
          rel="stylesheet" />
        
            
        

    Step 5

    Install Tailwind Elements.

    • Terminal
            
                
            npm install tw-elements
            
            
        

    Step 6

    Import components which are you intend to use and necessary function initTE. Initialize initTE in a lifecycle method.

    • App.jsx
            
                
            import React, { useEffect } from "react";
            import { Datepicker, Input, initTE } from "tw-elements";
            
            const App = () => {
              useEffect(() => {
                initTE({ Datepicker, Input });
              }, []);
            
              return (
        <div
          className="relative mb-3"
          data-te-datepicker-init
          data-te-input-wrapper-init>
          <input
            type="text"
            className="peer block min-h-[auto] w-full rounded border-0 bg-transparent px-3 py-[0.32rem] leading-[1.6] outline-none transition-all duration-200 ease-linear focus:placeholder:opacity-100 peer-focus:text-primary data-[te-input-state-active]:placeholder:opacity-100 motion-reduce:transition-none dark:text-neutral-200 dark:placeholder:text-neutral-200 dark:peer-focus:text-primary [&:not([data-te-input-placeholder-active])]:placeholder:opacity-0"
            placeholder="Select a date" />
          <label
            for="floatingInput"
            className="pointer-events-none absolute left-3 top-0 mb-0 max-w-[90%] origin-[0_0] truncate pt-[0.37rem] leading-[1.6] text-neutral-500 transition-all duration-200 ease-out peer-focus:-translate-y-[0.9rem] peer-focus:scale-[0.8] peer-focus:text-primary peer-data-[te-input-state-active]:-translate-y-[0.9rem] peer-data-[te-input-state-active]:scale-[0.8] motion-reduce:transition-none dark:text-neutral-200 dark:peer-focus:text-primary"
            >Select a date</label
          >
        </div>
        ); }; export default App;
        
            
        

    Initializing via JS

    By default all components have autoinit which means they are initialized by data attributes. But if you want to make init by JavaScript - there is also possibility to do that.

    Step 1

    Import components which are you intend to use and initialize components in lifecycle hook.

    • App.jsx
            
                
            import { useEffect } from "react";
            import { Datepicker, Input } from "tw-elements";
    
            const App = () => {
            useEffect(() => {
              const myInput = new Input(document.getElementById("myDatepicker"));
              const options = {
                format: "dd-mm-yyyy",
              };
              const myDatepicker = new te.Datepicker(
                document.getElementById("myDatepicker"),
                options
              );
            }, []);
    
            return (
        <div
          className="relative mb-3"
          data-te-datepicker-init
          data-te-input-wrapper-init>
          <input
            type="text"
            className="peer block min-h-[auto] w-full rounded border-0 bg-transparent px-3 py-[0.32rem] leading-[1.6] outline-none transition-all duration-200 ease-linear focus:placeholder:opacity-100 peer-focus:text-primary data-[te-input-state-active]:placeholder:opacity-100 motion-reduce:transition-none dark:text-neutral-200 dark:placeholder:text-neutral-200 dark:peer-focus:text-primary [&:not([data-te-input-placeholder-active])]:placeholder:opacity-0"
            placeholder="Select a date" />
          <label
            for="floatingInput"
            className="pointer-events-none absolute left-3 top-0 mb-0 max-w-[90%] origin-[0_0] truncate pt-[0.37rem] leading-[1.6] text-neutral-500 transition-all duration-200 ease-out peer-focus:-translate-y-[0.9rem] peer-focus:scale-[0.8] peer-focus:text-primary peer-data-[te-input-state-active]:-translate-y-[0.9rem] peer-data-[te-input-state-active]:scale-[0.8] motion-reduce:transition-none dark:text-neutral-200 dark:peer-focus:text-primary"
            >Select a date</label
          >
        </div>
        ); }; export default App;
        
            
        
    • Prerequisites
    • Creating a new React application
    • Installing and configuring Tailwind CSS and Tailwind Elements
    • Initializing via JS
    Get useful tips & free resources directly to your inbox along with exclusive subscriber-only content.
    Join our mailing list now
    © 2023 Copyright: MDBootstrap.com