
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.
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.
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.
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.
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 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 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.
Create a reusable React table component with Tailwind CSS by passing columns and data source, rendering headers and rows, and enabling default column sorting.
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.