Git Product home page Git Product logo

charlie85270 / tail-kit Goto Github PK

View Code? Open in Web Editor NEW
2.9K 35.0 318.0 11.29 MB

Tail-kit is a free and open source components and templates kit fully coded with Tailwind css 3.0.

Home Page: https://www.tailwind-kit.com

License: MIT License

TypeScript 98.96% CSS 0.06% JavaScript 0.36% HTML 0.62%
tailwindcss tailwindui kit ui-components uikit tailwind components component-library tailwind-kit tailwind-css components-kit templates template

tail-kit's Introduction

Tail-Kit

version license GitHub issues GitHub Repo stars

Tailwind-Kit

A beautiful and large components and templates kit for TailwindCSS 3.0

Tail-Kit is Free and Open Source. It does not change or add any CSS to the already one from TailwindCSS 3.0. It features multiple HTML elements that can be used in all web projects who's use tailwind CSS.

Components

Tailwind Starter Kit comes with 230+ Fully Coded CSS elements.

Templates

Tailwind Starter Kit contains many templates like dashboards, landing pages, login pages etc. All are fully Coded and ready to copy paste.

Tailwind-Kit

Tailwind-Kit

Tailwind-Kit

and much more !!

Live code editor

Tailwind-Kit

Tailwind-kit include a live code editor to change the components code and see in live the modification.

Dark mode

Tailwind-Kit

Most components and templates are implemented with a light and dark version, with the new dark mode 3.0 feature of tailwind CSS.

Documentation

The documentation for the Tailwind-kit is hosted at our website.

Browser Support

At present, we officially aim to support the last two versions of the following browsers:

Chrome Firefox Edge Safari Opera

Reporting Issues/ make Pull request

Every Issues, and PR are welcome ! the site is not perfect, there must be typos, bugs, improvements. Do not hesitate to contribe and add your own components/layout.

Getting Started

Tailwind-Kit

Tail-Kit is a static site build with Next.js and typescript.

Prerequisites:

Node.js 10.13 or later

Recommanded : Node v12.18.3

Install dependencies:

npm install
# or
yarn install

Run the development server:

npm run dev
# or
yarn dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying pages/_index.tsx. The page auto-updates as you edit the file (static folder : /out).

Build the static site:

npm run build
# or
yarn build

🧐 What's inside?

A quick look at the important repo files and directories you'll see in a the project.

.
β”œβ”€β”€ node_modules
β”œβ”€β”€ public
β”œβ”€β”€ pages
β”œβ”€β”€ components
	 β”œβ”€β”€ kit
        β”œβ”€β”€ components
        β”œβ”€β”€ templates
     β”œβ”€β”€ layout
     β”œβ”€β”€ site
β”œβ”€β”€ utils
β”œβ”€β”€ editorTheme.tsx
β”œβ”€β”€ global.css
β”œβ”€β”€ LICENSE
β”œβ”€β”€ next.config.js
β”œβ”€β”€ tailwind.config.js
β”œβ”€β”€ package.json
β”œβ”€β”€ README
β”œβ”€β”€ tsconfig.json
β”œβ”€β”€ .gitignore
└── yarn.lock.json
  1. /node_modules: This directory contains all of the modules of code that your project depends on (npm packages) are automatically installed.

  2. /public: This directory contain all the public assets that need the project (images, icons).

  3. /pages: This directory contain all pages of the app. See NextJs pages documentation for more details

  4. /components: This directory contain all components and templates of the app.

    1. kit : contains all components and templates used for demonstration/preview. Component/templates are sorted by section (Commerce, Elements, Forms ...). Each section have his directory.
    2. layout : contains all layout used in the application. See NextJs layout documentation for more details
    3. site : contains all component used for the structure of the application (header, footer, home, ...)
  5. /utils: This directory contain all utils classes, like html parser, html beautifier (use to indent the components code on preview)

  6. editorTheme.tsx: This file is the configuration theme (colors) for the components code preview. See react-prism for more details

  7. global.css: This css file contain all the 'custom' css use for the app (home page animation)

  8. LICENSE: Bulma-css is licensed under EULA.

  9. next.config.js: This file contain all the nextJS configuration. Here we use the default one.

  10. tailwind.config.js: This file contain all the Tailwind configuration.

  11. package.json: A manifest file for Node.js projects, which includes things like metadata (the project’s name, author, etc). This manifest is how npm knows which packages to install for your project.

  12. README.md: A text file containing useful reference information about your project.

  13. tsconfig.json: The presence of a tsconfig.json file in a directory indicates that the directory is the root of a TypeScript project. The tsconfig.json file specifies the root files and the compiler options required to compile the project.

  14. .gitignore: This file tells git which files it should not track / not maintain a version history for.

  15. yarn-lock.json (See package.json below, first). This is an automatically generated file based on the exact versions of your npm dependencies that were installed for your project. (You won’t change this file directly).

πŸ“‹ Create a new section

Components and templates are sorted by category.

Categories are sorted by section.

A section can have one or more category.

Category can have one or more component/templates.

To add a new main section like Commerce, Element, Form .. you must :

  1. Create your new directory in components/kit/components/{yourSectionName} or components/kit/templates/{yourSectionName}. It's inside this directory that you will put all your components/templates files.
  2. Create a index.tsx file on this new directory. It will contain the description (categories names, components/tempaltes numbers, title, ....) of the section. See other section files for an example.
  3. Each time you want create a new category on a section you will need create a directory in the directory of this one. Then you will put the component/templates file in the category directory.

See an example :

β”œβ”€β”€ components
	 β”œβ”€β”€ kit
     	β”œβ”€β”€ components
        	β”œβ”€β”€ MyNewSection // section directory
            	index.tsx // section description file
            	β”œβ”€β”€ MyCategory // category directory
                		MyComponent.tsx // My component source file
                        MyComponent2.tsx // My component source file
                        ....
        β”œβ”€β”€ templates
     β”œβ”€β”€ layout
     β”œβ”€β”€ site
β”œβ”€β”€ ...
└── ...

πŸ“ Create a new category

As seen just above, to create a new category you need to create a directory on a section that will contains your components. We also need to create the category page.

  1. Create your new directory in pages/components/{yourCategoryName} or pages/templates/{yourCategoryName}. It's inside this directory that we will put the category page code.
  2. Create a index.tsx file on this new directory. It will contain all the components/templates that we want import and see in this category. See other category files for an example.
  3. When index.tsx is created NextJs create a route for this category that we can see on : http://localhost:3000/components/{yourCategoryName} or http://localhost:3000/templates/{yourCategoryName}

βž• Create a new component/templates

Components and templates are classics React functional component.

dark/light mode

If you want that your component have a dark version, use Tailwind classes for dark mode (documentation).

Import the component

The last thing to do is to import your component/template on the wanted category file : (/pages/components/{category}/index.tsx) or (/pages/templates/{category}/index.tsx)

To enabled all feature preview like live edition, dark mode, ... you need to pass our component to ComponentLayout.

ComponentLayout is the layout who will add all buttons (Code, Copy, Dark mode) and the live edition feature on our component.

ComponentLayout take few props :

  • element: The JSX.Element of our component
  • component: The component
  • title: The title of the component display on the panel
  • jsLink: The link of the component codeon github (if need JS to work)
  • needConfiguration: Boolean if the component/template need a custom tailwind configuration to work
  • vertical: Boolean if the code preview is display on side of the component or below
  • showSwitchMode: Boolean if the component have dark/light implementation (Display or hide the dark mode checkbox)
  • containerClasses: Classes to add on the container of the component (ex : add margin, padding ...)
propName propType defaultValue isRequired
element JSX.Element x
component x
title string x
jsLink string
needConfiguration boolean false
vertical boolean false
showSwitchMode boolean false
containerClasses string

Example of the index.tsx file of the toggle category :

import React, { FC } from "react";
import AppLayout from "../../../components/layout/AppLayout";
import ComponentLayout from "../../../components/layout/ComponentLayout";
import SectionHeader from "../../../components/site/header/SectionHeader";
import FormSubscribe from "../../../components/kit/components/form/layout/FormSubscribe";

const TogglePage: FC = () => {
  return (
     <AppLayout
      title="Toggle, Checkbox and Radio buttons components for tailwind css"
      desc="Free and open source toggle, checkbox and radio buttons components for tailwind css"
    >
      <SectionHeader title="Form layout" />
      <ComponentLayout
        title="Subscribe"
        element={<FormSubscribe label="Subscribe" placeholder="Email" />}
        component={FormSubscribe}
      />
    </AppLayout>
  );
};

export default TogglePage;

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Licensing

  • Copyright 2020 Charlie Rabiller

  • Licensed under MIT

tail-kit's People

Contributors

amaan-ahmad avatar charlie85270 avatar chnuessli avatar ciruz avatar consoletvs avatar fotiemconstant avatar gitryder avatar jhgilbert avatar lucasmrl avatar minor avatar orimdominic avatar sosualfred avatar tomasvn avatar tophsic avatar wanacode avatar xerosanyam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tail-kit's Issues

Mobile view is breaking of Teams > Multiple

image

Actual: Image of 2nd team mate is hiding the social information present on card of 1st team mate.
Expectation: Image of 2nd team mate must be below the card of 1st team mate.

Components

There'd be a lot less boilerplate if you offered stylesheet with applied components like tailwind discusses in maintability section. It would allow users to override some of the styles. I think with the components, you can redeclare a new button that extends your definition.

Live Editor

PostCSS is removing unused classes from the finalized css file so this is causing the live editor to not work as I would expect. This could be fixed with your tailwind config and not purge anything.

Example: On the Button change the bg-indigo-600 to bg-indigo-700 and it becomes transparent.

image

[feature] Upgrade to Tailwindcss 3

I started a fork, to upgrade TailKit to Tailwindcss 3, but ran into problems, some of which are documented in my README.md

  • lint fails for the build/ directory. It should likely be excluded.
  • Cannot upgrade Node past v14 because of Webpack 4.
  • Cannot upgrade React & dependencies past v16 because of react-simple-code-editor v0.11.0

The biggest problem is that Tailwind 3 requires PostCss 8 & Autoprefixer >=10. You'll notice this in
Error: true is not a PostCSS plugin.

Here are some links with details:

Happy bug hunting!

feat: tooling

  • I have opened a PR regarding this issue, as you have a lot of forks and a lot of people are contributing, I have taken some time to set up tools for this project PR #19

Your Google Auto Ads breaks the website experience

Hey,

The Google Auto Ads are pretty much breaking your website. With it, your components can't be seen properly. It's also annoying to have an ad every fourth component. That's just as much toxic advertising density as Instagram or Twitter.

Through the Ad Spam you have lost me but I am kind enough to open an issue here.

image
image

Some responsive issues

Hey,
very cool project and so many useful components.

I'll try some of them tommorow for a new project, thank you.

While checking them out on mobile (OnePlus Nord with Chrome) I noticed some responsive issues with the examples.

Best,
Tom
Screenshot_20201229-223854
Screenshot_20201229-223958
Screenshot_20201229-224027
Screenshot_20201229-224053

Toggle button transition not working

Hey contributors,

I tried fixing the transition in the toggle button, but it doesn't seem to work.

The reason is:

  • transition class name in tailwind does transition on the following properties:
    • background-color
    • border-color
    • color
    • fill
    • stroke
    • opacity
    • box-shadow
    • transform

We need to apply transition on the position because the toggle element takes checked: right-0.

It would be great if someone could figure out how to apply transition on "position" property.

Thanks,
Amaan Ahmad.

Accessibility issues on some input text components

I discovered that there are some accessibility issues on some of
the form input components at Input. To be more specific, for the
following components

  1. with label
  2. required
  3. on error
  4. with indications

On clicking the label of these components, the input element is not focused.
This is coming from the absence of an id attribute on the input elements
with a value that corresponds with the value of its label's for attribute value.

This behaviour is opposed to the Price component on the same page which
has these values correct.

Can I raise a PR that resolves this?

Multi lavel sidebar menu

Multi-level sidebar menu with nesting features make its more fantastic and reusable component family

Change select component name

My name is sur le component select please change le or donne me 10%

=> Le textarea ne peut pas Γͺtre Γ©largi
=> Il manque un password avec les caractères masqué

Charlie

Hi Charlie,

Im a new developer (2 week) and im new to tailwind. Can you help me make this tab section using tailwind that coverts to a select menu in mobile view.
image

Features on mobile

Hey Charlie,

found some mobile issues, if I have time I'll help you fixing some of them.

Best Tom

Screenshot_20210114-232759.jpg

More Components

Are you accepting the component from more users?If it is possible will you consider adding the checkout form or different cards in your library if so please let me know I will be happy to add those in the library. Please let me know

How use tsx component in Vuejs project

Hello,

First, thanks for you awesome works !

How can I use Navbar with JS in Nuxtjs project ? Do i need to adapt the react component, or it's possible with other way ?

Thanks for you support.

Cart product component .

A Card or section for products that are in cart
With minus and plus circular button and quantity of product listed in between those products .
A delete button for removing the product from cart .
A little animation like rotation of cart item card will be awesome πŸ˜‡ .

Thanks in advance to the person who will take this issue . πŸ’«

feat: light rounded badge

  • add new badge component
  • utilize the new badge - to add new tag next to title of the component section, to differentiate newly added components πŸ‘
    image

vanilla js?

How to use tail-kit with normal html + js?

Components are asking for react, like DropDownMenu.tsx

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.