Winduum is a small CSS component library that uses plain CSS and TailwindCSS for utility classes. It emphasizes modern CSS usage, modularity, accessibility, and compatibility with any framework. It extends TailwindCSS and focuses on minimizing JavaScript for speed.
Leverages the use of modern CSS syntax, such as CSS properties, modern pseudo selectors, modern CSS reset, nesting, low specificity, color-mix, view transitions and more.
Each component is written in plain CSS, so you can copy and paste it, or import it from npm and customize it with CSS properties.
Components are accessible and based on web standards, allowing you to build complex UI/UX projects. Modern approaches like dialog, popover, or details are leveraged.
Everything is written in plain CSS and JS, so you can use it with any framework. Pre-built components for Vue, optional TailwindCSS support.
Adds a plugin for TailwindCSS which adds new handy utilities and CSS properties. You don't need to use TailwindCSS, but it is recommended for full experience.
Uses optimized standards and minimizes JavaScript code to ensure efficiency and speed.
Install Winduum via npm using the command `npm i winduum`. This allows for easy integration into Node.js projects.
Winduum can be used with or without TailwindCSS. Includes customizable CSS with TailwindCSS to match utility classes.
Winduum components are compatible with PostCSS and LightingCSS to enhance CSS processing in browsers.
Integration with Stylelint to enforce coding standards and maintain consistent styles.
Use Winduum from a CDN for straightforward inclusion of stylesheets and components without local installation.
Allows users to try Winduum online with frameworks like Vite, Astro, Nuxt, and others.
Winduum is framework-agnostic, allowing you to create components using your preferred framework or adapt JavaScript primitives in any framework.
Leverages modern CSS features including properties like CSS Logical Properties, CSS Nesting, CSS color-mix, and modern pseudo selectors like :where, :is, :has. It also includes a modern CSS reset and APIs like View Transition API, Dialog API, and Popover API.
Recommends prefixing component classes and utility classes for clarity, such as 'component: x-name' and 'utilities: name'.
Encourages a consistent naming style for CSS properties, using a common pattern like 'x-name-font-size'.
Suggests organizing your project with directories like 'base', 'components', 'theme', and 'utilities' for ease of navigation.
Provides examples of how to use components in HTML without writing complex TailwindCSS classes and how to write your own components.
Defines basic colors like primary, light, and dark. These can be used throughout the design to maintain consistency.
Includes colors for main elements, offering primary, secondary, and tertiary shades. Helps in designing main sections of a page.
Body colors have specific shades for background elements, ensuring the body of the page has a clear visual style.
State colors like success, error, warning, and info indicate status messages, enhancing UI feedback.
Each color has a foreground variant for better visibility against backgrounds, using a ':foreground' postfix.
Allows setting of an accent color via accent-color property. Useful for components that need a distinct highlight color.
You can use icons as SVGs such as Heroicons. Winduum uses these internally via CSS llke Mask utility class.
Defines CSS mask properties to create icon masks using data URLs for masks. Example uses mask variable for icon.
Shows how to define and use SVG icons via <use> method. Use <svg> and <symbol> to declare icons, then <use href="#icon-id"> in components.
Integration with Vue and React libraries to use Heroicons easily within projects.
Provides a grid layout system using TailwindCSS to organize your content in structured columns and rows.
Allows flexible layouts through TailwindCSS, making it easy to create dynamic and adaptable designs with flexbox capabilities.
Enables spacing between grid items or flex items, enhancing visual clarity and organization.
Offers a utility to center and contain your content within a specified width using TailwindCSS.
Provides additional spacing utilities to evenly divide space between elements.
The page introduces CSS Layers as a method to have better control over specificity. The CSS Layers feature can be used with TailwindCSS layers to manage how different layers of styling are applied.
For TailwindCSS v3, users can define specific layers for base styles, components, utilities, and variants. The example provided shows how to import specific layers from the source CSS files and apply them using the @layer directive.
TailwindCSS v4 uses layers by default, meaning no additional configuration for layer control is necessary.
Allows configuration of CSS using Tailwind CSS settings in JSON format to customize the appearance of alerts and modals.
Includes support for the Tailwind CSS v3 through configuration files and extends it by setting up theme properties in the JavaScript file.
Allows users to define custom color schemes and font families by specifying keys and values in the provided configuration language. Default values are also provided for reference.
Provides users the ability to customize sizes such as border width and spacing through specifying explicit values, with defaults available for guidance.
Provides color customization using the \:root selector for easy theme extension. Supports TailwindCSS v3 and v4 with links to default CSS files.
Offers high-range colors compatible with P3 displays, allowing enhanced color support on newer devices.
Defines a dark color scheme for use with TailwindCSS, utilizing CSS variables for easy theme management.
Supports 95% global usage of the style system, with options to use RGB variants for improved compatibility, specifically with TailwindCSS v3.
Includes a modern CSS reset that disables the default TailwindCSS reset to provide a more minimalist styling approach.
Provides pre-defined styles for various HTML elements to ensure everything displays consistently without default browser styles.
Ensures consistency of default fonts across all browsers by using a standard font stack.
Sets box-sizing inheritance to ensure consistent behavior of layout and design.
Removes link styles for specific forms and elements to create a uniform appearance.
Resets table layout to prevent default vertical alignment issues and ensure consistent display.
Forces the pointer cursor for elements with an ":where(a, button)" to indicate interactiveness.
Defines default styles or rules applied to certain HTML elements or pseudo-elements with TailwindCSS 3. This includes default color and background styles.
Allows you to change the default cursor appearance for clickable elements, such as setting it to a pointer.
Sets the default size of an SVG as a small square if neither width nor height is specified.
Uses default styling for horizontal rules (<hr> elements).
Provides styles for displaying code blocks with padding, background, and border styling.
Applies styles for keyboard input elements, displaying them with a specific font style, padding, and background.
Provides default styles for basic text and color properties for the <html> and <body> elements.
A set of predefined breakpoints with specific pixel values to cover various screen resolutions. The breakpoints are defined similarly to TailwindCSS but with some variations in values. Examples include xs at 360px, sm at 416px, and so on up to 2xxl at 2528px. These are utilized for responsive design.
The breakpoints extend the same principles of responsive design, allowing developers to design web pages that adapt to different screen sizes. This allows for creating a single website layout that works on multiple devices.
Utilizes the Custom Media Specification which requires either PostCSS or LightningCSS. This allows developers to define and re-use media queries in CSS stylesheets effectively.
A keyframe animation that rotates an element 360 degrees.
A keyframe animation that transitions an element's opacity from 0% to visible.
A keyframe animation that transitions an element's opacity from fully visible to 0%.
Activates the View Transitions API to enable cross-document animations.
Allows the CSS properties to be modified through configuration files.
Provides classes like 'view-transition-main' to elements for animating page navigation.
Enables control over animation duration and delay using CSS variables 'animation-duration' and 'animation-delay'.
Allows customization of badges with various display styles like solid or outline to suit different design needs.
Badges can be adjusted in size (xs, sm, md, lg, xl) for responsiveness and visual hierarchy.
Supports multiple predefined colors like blue, green, red, etc., to visually differentiate badges.
Integration with icons to enhance visual communication within badges, making them more descriptive.
Allows for text truncation with ellipsis to manage long text within badges.
Provides the CSS import statement needed to use the Breadcrumb component: `@import "winduum/src/components/breadcrumb/index.css" layer(components);`.
Offers a default styling option for the breadcrumb component.
Details available properties for the component customization. It provides a default configuration.
Guides on installing the Breadcrumb component for different frameworks: Winduum, Winduum-Vue, and Winduum-React.
The Button component supports different variants such as default, outline, ghost, and link which dictate the button's appearance and behavior.
Buttons can be configured in different sizes like small, medium, and large to fit various UI requirements.
Button colors can be customized, offering a range of predefined color options such as primary, secondary, and more.
Buttons can include icons, allowing them to be placed before or after the button text for visual enhancement.
The Button component supports a loading state, visually indicating that an operation is in progress.
Buttons can be disabled, making them non-interactive and grayed out to prevent user interaction.
Guides on how to import and use the card component in a project. The component can be imported using the provided CSS path.
Different preset styles available for the card component. You can choose from the 'default' variant.
Properties that can be applied to the card component to customize its appearance or functionality. Available as 'default'.
Instructions on how to install the card component within different frameworks including winduum, winduum-vue, and winduum-react.
Code snippets with visual examples demonstrating how to implement the card component in a project. Examples include a default card and a card with an image.
Provides the basic implementation of the carousel component using <Carousel> component.
Allows customization of the carousel appearance through different variants.
Enables advanced customization and interaction using functions like next(), prev(), and setActive().