Skip to content
This repository was archived by the owner on Mar 25, 2026. It is now read-only.
This repository was archived by the owner on Mar 25, 2026. It is now read-only.

QuickFilterDropdown violates headless architecture with hardcoded styles #96

@ryanrozich

Description

@ryanrozich

Problem

QuickFilterDropdown component has CSS module styles (QuickFilterDropdown.module.css) which violates the headless component architecture principle. Headless components should have NO default styles.

Current Issues

  1. Component has 643 lines of CSS with hardcoded colors and styles
  2. Dark mode only works with prefers-color-scheme: dark media query, not class-based dark mode
  3. Users cannot fully customize the component appearance without fighting specificity wars

Files Affected

  • src/components/QuickFilterDropdown/QuickFilterDropdown.module.css (should be removed)
  • src/components/QuickFilterDropdown/index.tsx (should remove all style imports and className applications)

Proposed Solution

  1. Remove ALL CSS from the component
  2. Accept render props or className props for each element
  3. Provide example styles in the demo/documentation
  4. Let users have full control over styling

Temporary Workaround

Created src/demo/styles/quick-filter-overrides.css with !important rules to fix dark theme hover states in the demo.

Related

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status

    ✅ Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions