
Learn to build a React component library from scratch with Tailwind CSS, using props to drive multiple button variants and other essentials like input, modal, and tabs.
Set up a React application for the UI component library using create-react-app, run npm start to preview at localhost:3000, and customize App.js and index.html to remove defaults for next lecture.
Install npm modules for a React component library, including react-router-dom, classnames, and Tailwind CSS, set up the project structure, and scaffold button and input components with nested routes and outlets.
Design the navbar for a React component library with Tailwind CSS, list the available components, enable navigation to nested routes, and highlight the active component using the class names library.
Learn to build a reusable button component in a react tailwind css library, with title and onClick props, and primary color variants (contained and outlined) using dynamic classNames.
Learn to implement a disabled button with opacity and non-click behavior, and create a rounded button using tailwind props and dynamic classes, with tailwind safe list configuration.
Learn how to implement a custom background color prop in a React component library using Tailwind CSS, including dynamic color handling, fallbacks, and inline style for non-tailwind colors.
Implement custom text color and background color in the button component by toggling between white, orange, and primary outline variants, ensuring the color logic works with outline and non-outline states.
Build an input component with basic and rounded variants, plus disabled and error states, wiring value and onChange while applying label, placeholder, and error message props using Tailwind CSS.
Demonstrates building reusable inputs with disabled and error states in a Tailwind CSS based React component library, including handling value, error messages, and conditional borders.
Demonstrate building a header component in a React Tailwind CSS library, including routing setup, folder structure, and configurable text properties like size, color, uppercase, underline, bold, and alignment.
Explore creating variants of a page header component in a tailwind-based React library, including the title prop, text size, underline, bold, uppercase, align center, color, and border options.
Develop a reusable spinner component in React, supporting small, medium, and large sizes with color and border size options, implemented via Tailwind classes and inline styles.
Demonstrate spinner variants in a React component library with Tailwind CSS, including medium and large spinners and a custom color spinner using border color utilities.
Explore building a versatile React tabs component from scratch using Tailwind CSS, with outline, dash, vertical, and disabled variants that switch content when a tab is clicked.
Explore implementing tabs variants in a React Tailwind CSS project by adding an outlined and underlined (dashed) tab style, using a variant prop, conditional classes, and active index highlighting.
Implement vertical and horizontal tabs in a React Tailwind CSS library by using an orientation prop, arranging tab names and content with conditional flex layouts, including outline and underline variants.
Implement a tabs component with a disabled tabs variant by passing disabled indexes to prevent selecting certain tabs. Preview the outline underlined variant and consider adding icons and other variants.
Build a modal pop-up component with closable and non-closable variants, featuring an overlay, centered content, and a close button. Configure open, setOpen, title, content, and closable to control visibility.
Set the modal width from 500px to 800px and ensure the title and content render. Toggle closable modes and adjust background opacity so the backdrop dims without distorting it.
Learn to build a modal with a footer in a Tailwind CSS React component library, wiring open state, passing footer props, and implementing save and cancel actions with outlined buttons.
Learn to build a custom select component from scratch using React and Tailwind CSS, including variants, options mapping, selected value handling, and a responsive dropdown.
Implement a select field with custom label and value properties, using a country codes array and label and value for options.
Build a React select with icons and country flags, render image icons for options, and display the selected label with proper icon handling in Tailwind-based layouts.
Learn to implement a disabled select in a React component library with Tailwind CSS. Pass the disabled prop, apply opacity and pointer-events styles, and ensure the component cannot be selected.
Build an autocomplete by replicating the select component and adding a search-driven filter that displays matching options in an input field on focus, then hides on blur.
The lecture demonstrates handling the search criteria after selecting an autocomplete option by using label and value properties, updating input value, and auto-focusing the input for smooth navigation.
Create a reusable React table component with Tailwind CSS by passing columns and data source, rendering headers and rows, and enabling default column sorting.
Learn to implement table sorting in a React component by a sort-by select, wiring a data source to a temp data array and applying array sort by various fields.
Implement the table search by filtering entire rows with json.stringify across all columns. Ensure the table width stays full and the search input labeled 'Search' functions across rows.
Hello and welcome to our course on building a component library from scratch using Tailwind CSS!
In this course, you will learn how to create a variety of components such as buttons, input fields, page headers, spinners, tabs, autocomplete fields, tables, modals, navbars, and select fields. By the end of this course, you will have the skills and knowledge needed to build your own custom component library from scratch.
We will be using Tailwind CSS, the world's first utility framework, to build our components. You will learn how to use Tailwind's utility classes to style your components and make them responsive to different screen sizes.
Here's a breakdown of the components we will be building:
Button: A clickable element that is used to trigger an action or submit a form.
Input Field: A form element that allows users to input data, such as text or numbers.
Page Header: A section at the top of a page that typically includes a title and navigational links.
Spinner: An animated icon used to indicate that a process is in progress and the user should wait.
Tabs: A navigation element that allows users to switch between different content sections within a page.
Autocomplete: A form element that provides suggestions as the user types, often used for searching or selecting options.
Table: A grid of data organized into rows and columns.
Modal: A temporary overlay or popup window that displays additional information or requires user action.
Navbar: A navigation element that typically appears at the top of a page and includes links to other sections of the site.
Select Field: A form element that allows users to choose from a list of options typically displayed as a dropdown menu.
This course is ideal for developers who want to learn how to build components from scratch using Tailwind CSS. Whether you are a beginner or an experienced developer, you will gain valuable skills and knowledge that you can apply to your own projects.
Building a component library from scratch can be a challenging task, but it can also be a rewarding experience. By creating a set of reusable components, developers can save time and improve the consistency and quality of their code. In addition, component libraries can be shared with other developers, making it easier to collaborate on projects and maintain a consistent design language across different applications.
When building a component library, it is important to consider factors such as accessibility, usability, and responsiveness. Components should be designed with a focus on user experience and should be tested across a range of devices and screen sizes to ensure they work properly in different contexts.
Overall, building a component library using Tailwind CSS can be a great way to improve the efficiency and quality of your development process. By creating reusable components that can be easily integrated into different projects, you can save time and improve the consistency and quality of your code.