ionic-team / ionic-team/ionicons

bug: Invalid @supports syntax in icon.css breaks under strict CSS parsers (e.g. Lightning CSS)

Aperta Adatta ai principianti
#1,513 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
triage
Lingua principale
TypeScript
Stelle
18.2k
Fork
2.1k
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

### Current Behavior

icon.css has:

```css
@supports not selector(:dir(rtl)) and selector(:host-context([dir='rtl'])) {
:host(.icon-rtl) .icon-inner {
transform: scaleX(-1);
}
}
```

Per the CSS Conditional Rules spec, `not` and `and` can't be mixed in a `` without explicit parens grouping each operand.

Whilst PostCSS allowed this formatting, Lightning CSS (used in the upcoming stencil v5 release) fails with: `Unexpected token Ident("and")`

### Expected Behavior

```css
@supports (not selector(:dir(rtl))) and (selector(:host-context([dir='rtl']))) {
```

### Steps to Reproduce

```ts
const { transform } = require('lightningcss');
transform({
filename: 'icon.css',
code: Buffer.from(`
@supports not selector(:dir(rtl)) and selector(:host-context([dir='rtl'])) {
a { color: red; }
}
`),
});
// throws: Unexpected token Ident("and")
```

Alternatively, swap in stencil/core `5.0.0-alpha.35` in the main ionic repo and run `npm run build`

### Code Reproduction URL

_No response_

### Additional Information

_No response_

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Apri icon.css e individua la regola @supports mostrata nell’issue. Aggiorna la sua condizione in modo che utilizzi il raggruppamento esplicito descritto in Expected Behavior, quindi esegui la riproduzione di Lightning CSS oppure sostituisci stencil/core con 5.0.0-alpha.35 ed esegui npm run build per confermare che il foglio di stile venga analizzato correttamente.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
css
Ambito
frontend
Tipo di issue
Bug
Difficoltà
1/5
Tempo stimato
Meno di un'ora
Stato di attività
Attiva
Chiarezza
Specificata chiaramente
Idoneità per principianti
92/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.