npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

Iโ€™ve always been into building performant and accessible sites, but lately Iโ€™ve been taking it extremely seriously. So much so that Iโ€™ve been building a tool to help me optimize and monitor the sites that I build to make sure that Iโ€™m making an attempt to offer the best experience to those who visit them. If youโ€™re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, ๐Ÿ‘‹, Iโ€™m Ryan Hefnerย  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If youโ€™re interested in other things Iโ€™m working on, follow me on Twitter or check out the open source projects Iโ€™ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soonโ€“ish.

Open Software & Tools

This site wouldnโ€™t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you ๐Ÿ™

ยฉ 2026 โ€“ย Pkg Stats / Ryan Hefner

ramailo-ui

v2.0.4

Published

๐ŸŽจ A fully customizable Ant Design table component compatible with **React.js** and **Next.js**

Readme

RamailoTable

๐ŸŽจ A fully customizable Ant Design table component compatible with React.js and Next.js

โœจ Overview

RamailoTable provides an enhanced table component with superior flexibility for styling, sorting, filtering, and pagination. Built with performance and customization in mind, it seamlessly integrates with your React and Next.js applications.

Sample Image

Alt text

๐Ÿš€ Features

  • Framework Compatibility: Fully supports React.js and Next.js environments
  • Customization: Extensive styling options and theming capabilities
  • Built-in Functionality: Integrated sorting, filtering, and pagination
  • Performance: Lightweight and optimized for efficient rendering
  • Type Safety: Written in TypeScript for better development experience

๐Ÿ“ฆ Installation

Choose your preferred package manager:

Using npm:

npm install ramailo-ui antd

Using yarn:

yarn add ramailo-ui antd

๐Ÿ“Œ Usage

Basic Example

import React from "react";
import  {RamailoTable}  from "ramailo-ui";

const columns = [
  { title: "Name", dataIndex: "name", key: "name" },
  { title: "Age", dataIndex: "age", key: "age" },
  { title: "Address", dataIndex: "address", key: "address" },
];

const data = [
  { key: "1", name: "John Doe", age: 32, address: "New York" },
  { key: "2", name: "Jane Smith", age: 28, address: "London" },
  { key: "3", name: "Sam Wilson", age: 40, address: "Paris" },
];

const App = () => {
  return (
    <div style={{ padding: "20px" }}>
      <h2>Custom Ant Design Table</h2>
      <RamailoTable
        columns={columns}
        dataSource={data}
        pagination={{ pageSize: 2 }}
      />
    </div>
  );
};

export default App;

๐ŸŽจ Customization

The component accepts various props for enhanced customization:

<RamailoTable
  columns={columns}
  dataSource={data}
  pagination={{ pageSize: 2 }}
  rowClassName={(record, index) => (index % 2 === 0 ? "bg-gray-100" : "")}
  customStyles={{ border: "2px solid blue" }}
/>

๐Ÿ›  Development

Setup and Installation

# Install dependencies
npm install

# Start development server
npm run dev

# Build for production
npm run build

๐Ÿ“š Resources

/* customTableStyles.css */
th.ant-table-cell {
  background-color: red !important; /*header color*/
  color: white !important;
}
.ant-pagination-item-link {
  /*Pagination arrow*/
  color: red !important;
}
.ant-pagination .ant-pagination-item-active {
  /* pagination active item color */
  border-color: red !important;
}
.ant-pagination-item-active a {
  /* pagination active item color */
  color: red !important;
}

RamailoTable Documentation

Client-Side Implementation

Overview

A customizable React table component that supports pagination, sorting, and CRUD operations. Built using the ramailo-ui package with Tailwind CSS styling.

Features

  • Responsive data table with custom styling
  • Client-side sorting for columns
  • Pagination with configurable page size
  • Action buttons for View/Edit/Delete operations
  • Custom row and header styling
  • Hover effects and transitions
  • Alternating row colors

Installation

npm install ramailo-ui

Usage

  1. Import the component:
import  {RamailoTable}  from "ramailo-ui";
  1. Define your columns:
const columns = [
  { 
    title: "Name", 
    dataIndex: "name", 
    key: "name",
    sorter: true
  },
  // ... additional columns
];
  1. Implement the table:
<RamailoTable
  columns={columns}
  dataSource={data}
  pagination={{
    pageSize: 3,
    showSizeChanger: true,
    showTotal: (total) => `Total ${total} items`,
  }}
  // ... additional props
/>

Styling

The component supports several styling options:

  1. Header Styling:
const headerStyle = {
  backgroundColor: "#fce7f3 !important",
  color: "#be185d",
  fontWeight: "600",
  padding: "12px 16px",
};
  1. Row Styling:
const rowStyle = (record, index) => ({
  backgroundColor: index % 2 === 0 ? "#ffffff" : "#f9fafb",
  transition: "background-color 0.3s",
});
  1. Pagination Styling:
const paginationStyle = {
  ".ant-pagination-item": {
    backgroundColor: "#dcfce7 !important",
    borderColor: "#22c55e",
    color: "#15803d",
  }
  // ... additional pagination styles
};

Server-Side Implementation

Overview

The server-side implementation includes API integration with pagination support, using the dummyJSON API as an example.

Features

  • Server-side pagination
  • Data fetching with error handling
  • Dynamic page size adjustment
  • Loading state management
  • Total items tracking

API Integration

  1. Fetch Function:
const fetchTableData = async (page, pageSize) => {
  const skip = (page - 1) * pageSize;
  try {
    const response = await fetch(`https://dummyjson.com/users?limit=${pageSize}&skip=${skip}`);
    const data = await response.json();
    return {
      data: data.users.map(user => ({
        // ... data transformation
      })),
      total: data.total
    };
  } catch (error) {
    console.error("API Error:", error);
    throw error;
  }
};

State Management

const [loading, setLoading] = useState(false);
const [data, setData] = useState([]);
const [totalItems, setTotalItems] = useState(0);
const [currentPage, setCurrentPage] = useState(1);
const [pageSize, setPageSize] = useState(5);

Data Fetching Implementation

const fetchData = async (page, size) => {
  setLoading(true);
  try {
    const response = await fetchTableData(page, size);
    setData(response.data);
    setTotalItems(response.total);
  } catch (error) {
    console.error("Error fetching data:", error);
  } finally {
    setLoading(false);
  }
};

Best Practices

  1. Error Handling
  • Implement proper error handling for API calls
  • Show user-friendly error messages
  • Log errors for debugging
  1. Loading States
  • Display loading indicators during data fetching
  • Disable actions while loading
  • Maintain UI responsiveness
  1. Data Transformation
  • Transform API data to match table requirements
  • Handle missing or null values
  • Format dates and special fields
  1. Performance
  • Implement proper pagination
  • Use appropriate page sizes
  • Cache results when possible
  • Implement debouncing for search/filter operations

Security Considerations

  1. Input Validation
  • Validate page numbers and sizes
  • Sanitize search inputs
  • Implement proper CORS headers
  1. Authentication
  • Implement proper authentication for protected routes
  • Include authentication headers in requests
  • Handle session expiration
  1. Data Protection
  • Implement proper data access controls
  • Sanitize sensitive information
  • Follow data protection regulations

๐Ÿ‘ฅ Contributors

  • Developer: Md Maaz Ahmad
  • Organization: Ramailo Technology