linaria icon indicating copy to clipboard operation
linaria copied to clipboard

[postcss-linaria] Allow for alias of `css` in config

Open clintandrewhall opened this issue 1 year ago • 3 comments

Describe the enhancement

Supply the ability to declare aliases for css and styled when running stylelint analysis for projects that export those methods from linaria with a different name.

Motivation

I'm using atomic styles in a personal project. I recently added stylelint with property-disallowed-list to flag uses of margin and padding, (to prompt using margin-left instead, etc) and it wasn't working... at all.

After a day of digging, it turned out the reason was I had abstracted the use of linaria out to a local import. And since I was needing to apply global styles for a component library, to differentiate css from core and atomic, I had done the following:

// lib/css
export { css as csa, styled } from '@linaria/atomic';
export { css } from '@linaria/core';

and

// some/component.styles.ts

import { csa } from '@lib/css';
...
csa`{
  margin-left: 10px;
}`

Because postcss-linaria looks specifically for css and styled the string literals weren't being flagged.

Possible implementations

Allow the ability to configure the syntax with aliases to each named method:

alias: {
  css: 'csa',
  styled: 'linariaStyled',
}

Related Issues

None I could find.

clintandrewhall avatar Sep 13 '24 13:09 clintandrewhall

Is there any reason this syntax won't work for you?

export { css as csa } from '@linaria/core';

DaveSauce avatar Sep 19 '24 12:09 DaveSauce

@DaveSauce That's literally what I did, and what surfaced the issue.

Because postcss-linaria looks specifically for css and styled the string literals weren't being flagged.

If the function is renamed, postcss-linaria doesn't see it.

clintandrewhall avatar Sep 20 '24 15:09 clintandrewhall

This is a possible duplicate of #1430. Have you tried the tagResolver option documented here?

espretto avatar Mar 26 '25 11:03 espretto

This is a possible duplicate of #1430. Have you tried the tagResolver option documented here?

Did this solve your issue? @clintandrewhall

espretto avatar Nov 19 '25 15:11 espretto

@espretto Thanks for the ping! I'm doing this already, but that doesn't appear to have any effect on the postcss-linaria plugin...?

clintandrewhall avatar Nov 19 '25 15:11 clintandrewhall

This is a possible duplicate of #1430.

Unfortunately, it is not. I don't have a problem re-exporting it. I'm having a problem with how the style is being checked/validated with postcss-linaria: it's hardcoded to look for css and styled.

I readily admit this is an edge case. And due to another bug in the stylelint impl, regarding corruption of styles with autofix, I recently removed stylelint entirely.

clintandrewhall avatar Nov 19 '25 15:11 clintandrewhall