JSPM

react-tailwind-grid-viewer

1.0.2
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 7
    • Score
      100M100P100Q24196F

    A React component that provides a visual overlay for displaying and debugging grid layouts in your application, defined by tailwind classes.

    Package Exports

    • react-tailwind-grid-viewer

    Readme

    react-tailwind-grid-viewer

    A React component that provides a visual overlay for displaying and debugging grid layouts in your application, defined by tailwind classes.

    Features

    • Visualize grid columns across different breakpoints
    • Toggle visibility with Shift + G on your keyboard
    • Customizable colors and opacity
    • Configurable grid settings for different breakpoints

    Installation

    npm i react-tailwind-grid-viewer

    or

    yarn add react-tailwind-grid-viewer

    Usage

    import GridViewer from "react-tailwind-grid-viewer";
    <GridViewer color="bg-cyan-500" />;

    It's a good idea to avoid rendering the component in production, but it's up to you.

    {
      process.env.NODE_ENV !== "production" && <GridViewer color="bg-cyan-500" />;
    }

    Keyboard Shortcut

    Press Shift + G to toggle the grid overlay visibility.

    Custom Grid Config

    const customGrid = [
      {
        breakpoint: "default",
        columnClass: "grid-cols-4",
        gapClass: "gap-4",
        classes: "px-2",
      },
      {
        breakpoint: "md",
        columnClass: "grid-cols-8",
        gapClass: "gap-6",
        classes: "px-4",
      },
      // ... add more breakpoints as needed
    ];
    
    <GridViewer color="bg-cyan-500" grid={customGrid} />;

    Props

    Prop Type Default Description
    color string - The background color class for the grid columns. Must be a valid Tailwind CSS background color class (e.g., "bg-cyan-500").
    opacity string "bg-opacity-20" The opacity class for the grid columns. Must be a valid Tailwind CSS background opacity class (e.g., "bg-opacity-20").
    grid GridConfig[] See below* An array of grid configurations for different breakpoints.
    container boolean true Whether to apply the container class to the grid wrapper.
    visibleByDefault boolean false Whether the grid overlay should be visible by default.

    Default grid configuration:

    [
      {
        breakpoint: "default",
        columnClass: "grid-cols-2",
        gapClass: "gap-8",
        classes: "px-4",
      },
      {
        breakpoint: "md",
        columnClass: "grid-cols-6",
        gapClass: "gap-8",
        classes: "px-8",
      },
      {
        breakpoint: "lg",
        columnClass: "grid-cols-12",
        gapClass: "gap-16",
        classes: "px-16",
      },
      {
        breakpoint: "xl",
        columnClass: "grid-cols-12",
        gapClass: "gap-16",
        classes: "px-16",
      },
      {
        breakpoint: "2xl",
        columnClass: "grid-cols-12",
        gapClass: "gap-16",
        classes: "px-16",
      },
    ];

    FAQ

    Q: I can only see the column numbers, but not the grid lines.

    A: Make sure you set color to a existing background color class in from your tailwind config e.g. bg-gray-500.

    Q: Can I use GridViewer with other CSS frameworks?

    A: While GridViewer is designed to work seamlessly with Tailwind CSS, you could use it with other frameworks by providing appropriate class names in the grid configuration.

    Q: How can I change the keyboard shortcut?

    A: Currently, the keyboard shortcut is not customizable.

    Q: Does GridViewer affect my application's performance?

    A: GridViewer is designed to have minimal impact on performance. It only renders when visible and uses CSS for most of its functionality. However, it's recommended to remove or disable it in production builds.

    Contributing

    Contributions are welcome! Please feel free to submit a Pull Request.

    License

    This project is licensed under the MIT License.