All technologies

CSS

49 painsavg 5.1/10
dx 22compatibility 8ecosystem 6performance 5architecture 4feature 1security 1testing 1config 1

Global CSS selectors lack encapsulation

7

CSS selectors are globally scoped by default, meaning a class intended for one element can inadvertently affect others far removed in the document tree, causing 'CSS hell' in large-scale projects.

architectureCSS

Email CSS compatibility remains archaic and extremely limited

7

Email client CSS support is antiquated with very few styling possibilities available. This creates a major disconnect from modern web CSS and requires developers to use outdated techniques.

compatibilityCSSEmail

Conflicting styles when introducing Tailwind to existing projects

7

Adding Tailwind to legacy projects with existing CSS can cause style conflicts and break existing functionality. Tailwind's style reset and generic class names (e.g., `.hidden`) can override existing CSS logic unintentionally.

compatibilityTailwind CSSCSS

CSS properties interact in unexpected ways, making behavior unpredictable

7

Setting one CSS property often has unintended consequences across a dozen other properties due to cascading rules and default values the developer never explicitly set. This makes CSS hard to reason about and requires trial-and-error debugging.

dxCSS

Vendor lock-in due to non-standard CSS syntax

7

Tailwind's `@apply` directive only works within Tailwind and is not part of the CSS standard. CSS files written for Tailwind are fundamentally incompatible with other CSS frameworks and tooling, creating a one-way dependency that prevents migration.

compatibilityTailwind CSSCSS

Container Queries implementation mistakes and debugging complexity

6

Developers frequently forget the `container-type` declaration when implementing container queries, and the interaction between container queries and cascade layers creates complex debugging scenarios. Incorrect implementation can cause performance issues despite the feature's general benefits.

dxCSScontainer queries

CSS rendering performance and reflow issues

6

Large, unoptimized CSS files cause reflows and sluggish UIs on high-traffic sites. Browser reflow operations on every interactive change degrade performance, particularly on older devices.

performanceCSS

CSS file organization and management is poorly structured

6

Managing CSS files and file organization is cited as the biggest pain point for developers. Stylesheets often become giant, unmaintainable piles of spaghetti code without proper architectural patterns.

architectureCSS

Form element styling requires custom overrides, breaking accessibility

6

Default browser form elements are limited and aesthetically poor, forcing developers to build custom versions. This introduces accessibility complexity that is already difficult to manage without developers further overwriting defaults.

dxCSSHTML Forms

Performance optimization across devices and browsers

6

HTML5 applications tend to load slowly, especially on older devices, mobile connections, and when using graphics-intensive features. Developers must constantly optimize code, minimize assets, and leverage caching strategies, but performance remains a persistent challenge.

performanceHTML5CSSJavaScript+1

Steep learning curve requires developers to master both frontend and backend skills

6

Tauri forces backend developers to learn HTML, CSS, and JavaScript, and vice versa. There are no native UI components—the entire interface relies on web technologies. This creates a barrier for teams specialized in desktop or backend development and requires hiring full-stack developers or extensive training.

dxTauriHTMLCSS+1

Loss of fundamental CSS knowledge among developers

6

Developers using Tailwind are abstracting away core CSS knowledge (Flexbox, Grid, positioning). Junior developers can use Tailwind classes but don't understand the underlying CSS properties, creating a generation gap in web platform fundamentals.

dxTailwind CSSCSS

Missing 3D transform and z-axis support

6

Figma lacks native z-axis and 3D transforms that CSS has supported for years. Designers need paid plugins or third-party workarounds just to visualize basic 3D rotations that developers can implement with a single CSS line.

featureFigmaCSS

CSS layout complexity requires proper HTML structure foundation

6

Developers pile HTML into pages without proper structure, then struggle when CSS cannot fix poor document architecture. Effective CSS layout depends on developers first understanding how to structure HTML semantically and logically.

dxCSSHTML

Safari browser lags in CSS feature support

6

Safari's CSS feature support lags behind other major browsers, creating platform-specific compatibility issues and forcing developers to write Safari-specific workarounds.

compatibilityCSSSafari

Code exposure vulnerability in HTML5 applications

6

HTML5 files (HTML, CSS, JavaScript) are cached and rendered on the user's system, making them easily accessible and viewable by anyone. HTML5 encryption cannot work because browsers cannot execute encrypted content, forcing developers to use code minification and obfuscation as incomplete solutions.

securityHTML5CSSJavaScript

Large CSS bundle size impacting page load performance

6

CSS files become excessively large, causing slow page load times and reduced application performance.

performanceCSS

Flexbox learning curve and retention

5

Developers find Flexbox challenging to learn and struggle to retain the details without daily practice. The mental model requires repeated exposure to solidify understanding.

dxCSSFlexbox

CSS @import Causes Render-Blocking and Performance Issues

5

Using CSS `@import` rules creates additional sequential HTTP requests and render-blocking behavior that delays page rendering. Each imported file is fetched sequentially rather than in parallel, degrading frontend performance.

performanceCSS

Design Changes with Tight Coupling

5

Seemingly minor design adjustments often trigger extensive changes in the codebase, particularly when dealing with tightly coupled CSS or JavaScript frameworks.

dxCSSJavaScript

@property silent failures and cryptic fallback behavior

5

When @property rules receive invalid values, they fail silently and revert to the `initial-value` without clear debugging information, making it difficult to diagnose registration and animation issues.

dxCSS@property

Missing native CSS mixins and functions

5

Developers still rely on preprocessors like Sass, Less, and PostCSS for mixins and advanced functionality, despite repeated requests for native CSS support. This perpetuates tool dependencies and learning curves.

ecosystemCSSSassLess+1

CSS implicit logic is unpredictable compared to imperative programming

5

CSS's declarative paradigm with implicit conditional logic (selectors, cascade, variables, media queries) produces unpredictable outcomes. Unlike JavaScript or C++, CSS control flow is invisible and relies on the browser resolving conflicting constraints.

dxCSS

Disconnect between designer and developer CSS practices

5

There is a 'canyon' between aesthetically-driven CSS written by designers and code-maintainable CSS written by developers, resulting in brute-force implementations that ignore CSS's strengths.

dxCSS

Using JavaScript instead of CSS for tasks now handled natively

5

Developers continue to write JavaScript for functionality that modern CSS now handles natively, such as container queries, the `:has()` selector, scroll-linked animations, and view transitions. This creates unnecessary complexity and hurts performance.

performanceJavaScriptCSS

New CSS features add complexity without resolving core issues

5

New features like container queries and cascade layers add layers of complexity but don't fully resolve underlying declarative paradigm problems. Features like cascade layers don't eliminate unintended override risks in complex applications.

ecosystemCSScontainer queriescascade layers

Proliferation of CSS frameworks creating skill gap and dependency fatigue

5

The abundance of CSS frameworks can reduce development time but creates a risk that developers may not understand CSS fundamentals, leading to over-reliance on frameworks and difficulty working without them.

ecosystemCSS

Z-index management lacks context and becomes unmaintainable

5

Z-index rules scattered across stylesheets without clear relationships lead to escalating values (e.g., z-index: 999999). 52% of designers experience z-index-related issues regularly, making layering logic impossible to reason about.

dxCSS

Responsive Design Implementation Complexity

5

While responsive design is necessary to accommodate different screen sizes, its successful implementation remains challenging. Developers must balance complexity and functionality across diverse device types and screen resolutions.

dxCSSHTML

CSS lacks runtime error checking and compile-time validation

5

CSS lacks tooling comparable to TypeScript for catching errors at compile-time. There is no good static analysis, making typos and invalid properties undetectable until runtime.

testingCSSTypeScript

CSS styling of web components is isolated and not accessible globally

5

Global styles cannot be easily applied inside web components due to shadow DOM encapsulation, creating friction when trying to apply consistent design systems.

compatibilityCSSWeb Components

Custom CSS implementation in Tailwind projects negates framework benefits

5

Complex projects require custom CSS alongside Tailwind utilities and @apply overrides, creating a hybrid CSS architecture. This defeats the purpose of using Tailwind and introduces maintenance complexity from multiple paradigms coexisting.

architectureTailwind CSSCSS

CSS lacks variables requiring color and style duplication

5

CSS historically lacked native variables, forcing developers to repeat colors and style values throughout multiple files, violating the DRY principle and creating maintenance burden.

dxCSS

SVG styling difficulty with CSS

5

SVG elements are difficult to customize and style with CSS, despite being incredibly useful and commonplace. 18% of respondents noted difficulties with SVG styling, indicating a widespread usability concern.

configSVGCSS

Complex mix of technologies with varied tooling and challenges

5

HTML5 applications depend on CSS, JavaScript, and WebRTC, each with its own developer tooling, implementation approaches, challenges, and security issues. Managing this complexity requires expertise across multiple technologies.

architectureHTML5CSSJavaScript+1

Grid layout complexity and configuration is difficult to master

5

Even after extensive use, developers struggle with complex grid configurations. Grid is powerful but unintuitive, requiring significant learning and trial-and-error to use effectively.

dxCSSCSS Grid

Animation composition modes produce subtly different and confusing results

4

The three animation composition modes (`replace`, `add`, `accumulate`) produce subtly different results that are easy to misunderstand, leading to unexpected animation behavior and debugging difficulty.

dxCSS

CSS layout debugging and positioning difficulty

4

Common tasks like centering elements require trial-and-error approaches. Layout bugs are notoriously difficult to debug due to the implicit logic of CSS's declarative model.

dxCSS

Audio-animation synchronization challenges

4

Creating animations synchronized with audio in HTML5 requires significantly more effort than it did in Flash. There are very few tools available to help with audio-animation sync, making this a tedious and time-consuming task.

dxHTML5CSSJavaScript

Inconsistent and confusing CSS API design

4

CSS has a confusing, scattered API with inconsistent naming conventions across properties and rules, making it difficult to remember and predict behavior.

dxCSS

100vh on mobile behaves unexpectedly due to mobile browser UI

4

The 100vh unit does not account for mobile browser chrome (address bar, nav bars), causing layout overflow and poor mobile UX.

compatibilityCSS

Difficulty with CSS framework templates

4

Developers struggle to effectively use CSS framework templates like Foundation. While frameworks are designed to simplify development, developers find them difficult to apply and work with in practice.

ecosystemCSSFoundation

Vendor-specific prefixes and browser inconsistencies

4

Developers must write browser-specific prefixes and hacks to handle inconsistent CSS rendering behavior across different browsers, particularly for advanced features.

compatibilityCSS

Audio and video format compatibility requirements

4

HTML5 supports multiple audio and video formats, requiring developers to provide files in different formats to support various devices. Developers must also create multiple versions of videos at different quality levels to adapt to different internet connection speeds.

compatibilityHTML5CSS

AI-generated CSS produces generic, homogenized designs

3

AI-assisted CSS generation tools produce generic 'AI slop' outputs lacking creative spark, potentially homogenizing the web and reducing design quality and uniqueness.

ecosystemCSSAI agents

CSS variable auto-completion across modules is missing

3

IDE tooling does not provide auto-completion for CSS variables across different modules, components, and applications, making variable discovery and reference difficult.

dxCSSCSS Custom Properties

Speed of CSS language evolution outpaces developer adoption

3

CSS is evolving rapidly with new features introduced constantly, making it difficult for developers to keep up with learning curve and adoption timelines.

ecosystemCSS

Inadequate naming conventions and semantic CSS decision paralysis

3

Plain CSS requires developers to make consistent naming decisions (e.g., .btn vs .button, .card-header vs .header-card), creating maintenance burden and consistency challenges across projects and teams.

dxCSS

Hard-to-remember CSS syntax

2

CSS has many features with complex or counter-intuitive syntax that developers struggle to remember, increasing cognitive load and requiring frequent reference checks.

dxCSS